hameeza ahmed via llvm-dev
2017-Jul-11 14:27 UTC
[llvm-dev] error: In anonymous_4820: Unrecognized node 'VRR128'!
hello,
i need to use v32i32 and v32f32 in store instructions.
I defined my register as;
def VRR128 : RegisterClass<"X86", [v32i32, v32f32],
1024, (add R_0_V_0, R_1_V_0, R_2_V_0)>;
def STORE_DWORD : I<0x70, MRMDestMem, (outs), (ins i2048mem:$dst,
VRR128:$src),
"STORE_DWORD\t{$src, $dst|$dst, $src}",
[(store (v32i32 (bitconvert VRR128:$src)), addr:$dst)],
IIC_MOV_MEM>, TA;
def: Pat<(store (v32f32 (bitconvert (VRR128:$src))), addr:$dst),
(STORE_DWORD addr:$dst, VRR128:$src)>;
but getting the following error;
STORE_DWORD: (st (bitconvert:v32i32 VRR128:{v32i32:v32f32}:$src),
addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>>
Included from /PIM/lib/Target/X86/X86.td:832:
/lib/Target/X86/X86InstrInfo.td:3166:1: error: In STORE_DWORD: Could not
infer all types in pattern!
def STORE_DWORD : I<0x70, MRMDestMem, (outs), (ins i2048mem:$dst,
VRR128:$src),
^
anonymous_4820: /PIM/lib/Target/X86/X86.td:832:
/lib/Target/X86/X86InstrInfo.td:3173:1: error: In anonymous_4820:
Unrecognized node 'VRR128'!
Please help.
Thank You
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20170711/654fd491/attachment.html>
Craig Topper via llvm-dev
2017-Jul-11 14:55 UTC
[llvm-dev] error: In anonymous_4820: Unrecognized node 'VRR128'!
You need a type inside this bitconvert. The outer type is the destination type for the bitconvert but it also needs an input type (store (v32i32 (bitconvert VRR128:$src)), addr:$dst) On Tue, Jul 11, 2017 at 7:27 AM hameeza ahmed <hahmed2305 at gmail.com> wrote:> hello, > i need to use v32i32 and v32f32 in store instructions. > I defined my register as; > > def VRR128 : RegisterClass<"X86", [v32i32, v32f32], > 1024, (add R_0_V_0, R_1_V_0, R_2_V_0)>; > > def STORE_DWORD : I<0x70, MRMDestMem, (outs), (ins i2048mem:$dst, > VRR128:$src), > "STORE_DWORD\t{$src, $dst|$dst, $src}", > [(store (v32i32 (bitconvert VRR128:$src)), > addr:$dst)], IIC_MOV_MEM>, TA; > > > > def: Pat<(store (v32f32 (bitconvert (VRR128:$src))), addr:$dst), > (STORE_DWORD addr:$dst, VRR128:$src)>; > > but getting the following error; > STORE_DWORD: (st (bitconvert:v32i32 VRR128:{v32i32:v32f32}:$src), > addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> > Included from /PIM/lib/Target/X86/X86.td:832: > /lib/Target/X86/X86InstrInfo.td:3166:1: error: In STORE_DWORD: Could not > infer all types in pattern! > def STORE_DWORD : I<0x70, MRMDestMem, (outs), (ins i2048mem:$dst, > VRR128:$src), > ^ > anonymous_4820: /PIM/lib/Target/X86/X86.td:832: > /lib/Target/X86/X86InstrInfo.td:3173:1: error: In anonymous_4820: > Unrecognized node 'VRR128'! > > Please help. > > Thank You > > --~Craig -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170711/3fe0de04/attachment.html>
hameeza ahmed via llvm-dev
2017-Jul-11 15:55 UTC
[llvm-dev] error: In anonymous_4820: Unrecognized node 'VRR128'!
Thank You.
How to do the same for add please see the following; it gives duplication
error.
def VADD : I<0x0E, MRMDestReg, (outs VRR128:$dst), (ins VRR128:$src1,
VRR128:$src2),"VADD\t{$src1, $src2, $dst|$dst, $src1, $src2}", [(set
VRR128:$dst, (add VRR128:$src1, VRR128:$src2))]>, TA;
def : Pat<(add VRR128:$src1, VRR128:$src2), (VADD VRPIM128:$src1,
VRPIM128:$src2)>;
Where to place v32f32 to distinguish between the two?
On Tue, Jul 11, 2017 at 7:55 PM, Craig Topper <craig.topper at gmail.com>
wrote:
> You need a type inside this bitconvert. The outer type is the destination
> type for the bitconvert but it also needs an input type
>
> (store (v32i32 (bitconvert VRR128:$src)), addr:$dst)
>
> On Tue, Jul 11, 2017 at 7:27 AM hameeza ahmed <hahmed2305 at
gmail.com>
> wrote:
>
>> hello,
>> i need to use v32i32 and v32f32 in store instructions.
>> I defined my register as;
>>
>> def VRR128 : RegisterClass<"X86", [v32i32, v32f32],
>> 1024, (add R_0_V_0, R_1_V_0, R_2_V_0)>;
>>
>> def STORE_DWORD : I<0x70, MRMDestMem, (outs), (ins i2048mem:$dst,
>> VRR128:$src),
>> "STORE_DWORD\t{$src, $dst|$dst, $src}",
>> [(store (v32i32 (bitconvert VRR128:$src)),
>> addr:$dst)], IIC_MOV_MEM>, TA;
>>
>>
>>
>> def: Pat<(store (v32f32 (bitconvert (VRR128:$src))), addr:$dst),
>> (STORE_DWORD addr:$dst, VRR128:$src)>;
>>
>> but getting the following error;
>> STORE_DWORD: (st (bitconvert:v32i32 VRR128:{v32i32:v32f32}:$src),
>>
addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>>
>> Included from /PIM/lib/Target/X86/X86.td:832:
>> /lib/Target/X86/X86InstrInfo.td:3166:1: error: In STORE_DWORD: Could
not
>> infer all types in pattern!
>> def STORE_DWORD : I<0x70, MRMDestMem, (outs), (ins i2048mem:$dst,
>> VRR128:$src),
>> ^
>> anonymous_4820: /PIM/lib/Target/X86/X86.td:832:
>> /lib/Target/X86/X86InstrInfo.td:3173:1: error: In anonymous_4820:
>> Unrecognized node 'VRR128'!
>>
>> Please help.
>>
>> Thank You
>>
>> --
> ~Craig
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20170711/88593f49/attachment.html>
Reasonably Related Threads
- error: In anonymous_4820: Unrecognized node 'VRR128'!
- error: In anonymous_4820: Unrecognized node 'VRR128'!
- Using new types v32f32, v32f64 in llvm backend not possible
- Using new types v32f32, v32f64 in llvm backend not possible
- Using new types v32f32, v32f64 in llvm backend not possible