Displaying 3 results from an estimated 3 matches for "x86_subreg_128bit".
2009 Dec 03
2
[LLVMdev] Duplicate Label in Generates ISel
...ed for VEXTRACTF128 which uses
extract_subreg:
[(set DSTREGCLASS:$dst,
(DSTTYPE (extract_subreg
(vector_shuffle
(SRCTYPE undef),
(SRCTYPE SRCREGCLASS:$src1),
VEXTRACTF128_shuffle_mask:$src2),
x86_subreg_128bit)))],
def x86_subreg_128bit : PatLeaf<(i32 1)>;
Curiously, I have analogous patterns for VINSERTF128 that use insert_subreg
but it doesn't generate any duplicate case values.
Anyone seen something like this before? Any ideas on how to fix it?
-Dave
2009 Dec 03
0
[LLVMdev] Duplicate Label in Generates ISel
...t_subreg:
>
> [(set DSTREGCLASS:$dst,
> (DSTTYPE (extract_subreg
> (vector_shuffle
> (SRCTYPE undef),
> (SRCTYPE SRCREGCLASS:$src1),
> VEXTRACTF128_shuffle_mask:$src2),
> x86_subreg_128bit)))],
>
> def x86_subreg_128bit : PatLeaf<(i32 1)>;
Whoops, I forgot to fill in types:
(outs VR128:$dst), (ins VR129:$src1, i32i8imm:$src2)
[(set DSTREGCLASS:$dst,
(v4f32 (extract_subreg
(vector_shuffle
(v8f32 undef),...
2009 Dec 03
1
[LLVMdev] Duplicate Label in Generates ISel
...i32i8imm:$src2)
>
> [(set DSTREGCLASS:$dst,
> (v4f32 (extract_subreg
> (vector_shuffle
> (v8f32 undef),
> (v8f32 SRCREGCLASS:$src1),
> VEXTRACTF128_shuffle_mask:$src2),
> x86_subreg_128bit)))],
Well, it's conflicting with the hard-coded case statement from
DAGISelEmitter.cpp. What's the best way to resolve this? Introduce
another DAG operator that means the same thing as ISD::EXTRACT_SUBREG
but that can be used as the top-level operator in a pattern?...