search for: iic_mov_mem

Displaying 18 results from an estimated 18 matches for "iic_mov_mem".

2017 Jul 07
2
Unhandled reg/opcode register encoding VR2048 Error in backend
...ents. so in x86instrinfo.td i wrote; def VMOV_256B_RM : I<0x6F, MRMSrcMem, (outs VR2048:$dst), (ins i32mem:$src), "vmov_256B_rm\t{$src, $dst|$dst, $src}", [(set VR2048:$dst, (v64i32 (scalar_to_vector (loadi32 addr:$src))))], IIC_MOV_MEM>, EVEX; def VMOV_256B_MR : I<0x7F, MRMDestMem, (outs), (ins i32mem:$dst, VR2048:$src), "vmov_256B_mr\t{$src, $dst|$dst, $src}", [(store (i32 (bitconvert VR2048:$src)), addr:$dst)], IIC_MOV_MEM>, EVEX; here i have already define VR2048 in...
2015 Mar 24
3
[LLVMdev] [PATCH] fix outs/ins of MOV16mr instruction (X86)
...et/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -1412,7 +1412,7 @@ let SchedRW = [WriteStore] in { def MOV8mr : I<0x88, MRMDestMem, (outs), (ins i8mem :$dst, GR8 :$src), "mov{b}\t{$src, $dst|$dst, $src}", [(store GR8:$src, addr:$dst)], IIC_MOV_MEM>; -def MOV16mr : I<0x89, MRMDestMem, (outs), (ins i16mem:$dst, GR16:$src), +def MOV16mr : I<0x89, MRMDestMem, (outs i16mem:$dst), (ins GR16:$src), "mov{w}\t{$src, $dst|$dst, $src}", [(store GR16:$src, addr:$dst)], IIC_MOV_MEM>, OpSize16; def...
2017 Aug 07
3
VBROADCAST Implementation Issues
...1, VK64WM:$mask, i2048mem:$src2), "GATHER_256B\t{$src2, {$dst} {${mask}}|${dst} {${mask}}, $src2}", [(set VR_2048:$dst, VK64WM:$mask_wb, (v64i32 (masked_gather (VR_2048:$src1), VK64WM:$mask, addr:$src2)))], IIC_MOV_MEM>, TA; def: Pat<(v64f32 (masked_gather (VR_2048:$src1), (VK64WM:$mask),(addr:$src2))), (GATHER_256B VR_2048:$src1, VK64WM:$mask, addr:$src2)>; Now getting this error: llvm-tblgen: /utils/TableGen/X86RecognizableInstr.cpp:687: void llvm::X86Disassembler::RecognizableInstr::emitInstructio...
2017 Aug 07
2
VBROADCAST Implementation Issues
...KRCWM:$mask, ins i2048mem:$src2), "GATHER_256B\t{$src2, {$dst}{${mask}}|${dst} {${mask}}, $src2}"), [(set VR_2048:$dst, _.KRCWM:$mask_wb, (v64i32 (GatherNode (VR_2048:$src1), _.KRCWM:$mask, VR_2048:$src2))], IIC_MOV_MEM>, TA; def: Pat<(v64f32 (GatherNode addr:$src2)), (GATHER_256B addr:$src2)>; Thank You On Mon, Aug 7, 2017 at 2:57 AM, Craig Topper <craig.topper at gmail.com> wrote: > masked_gather returns two results. The data and the modified mask. Note > the $dst and the $mask_wb in the...
2017 Aug 06
2
VBROADCAST Implementation Issues
...ement gather for v64i32. i wrote following code. def GATHER_256B : I<0x68, MRMSrcMem, (outs VR_2048:$dst), (ins i2048mem:$src), "GATHER_256B\t{$src, $dst|$dst, $src}", [(set VR_2048:$dst, (v64i32 (masked_gather addr:$src)))], IIC_MOV_MEM>, TA; def: Pat<(v64f32 (masked_gather addr:$src)), (GATHER_256B addr:$src)>; Also i wrote this line in isellowering.h setOperationAction(ISD::MGATHER, MVT::v64i32, Legal); But I am getting following error: llvm-tblgen: /utils/TableGen/CodeGenDAGPatterns.cpp:21...
2017 Jul 11
2
error: In anonymous_4820: Unrecognized node 'VRR128'!
...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_...
2017 Jul 11
2
error: In anonymous_4820: Unrecognized node 'VRR128'!
...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), >>...
2013 Nov 27
0
[LLVMdev] Some bugs in x86 disasm (llvm-mc)
Hi Jun, I'm not sure how to fix this yet, but this looks incorrectly defined in lib/Target/X86/X86InstrInfo.td: def MOV32o32a : Ii32 <0xA1, RawFrm, (outs), (ins offset32:$src), "mov{l}\t{$src, %eax|eax, $src}", [], IIC_MOV_MEM>, Requires<[In32BitMode]>; This instruction can be REX-prefixed for a 64-bit move, and that also doesn't appear to be defined anywhere. I would file a bugzilla in the x86 component and cc Craig Topper, the x86 disasm/codegen expert. On Wed, Nov 27, 2013 at 8:5...
2013 Nov 27
3
[LLVMdev] Some bugs in x86 disasm (llvm-mc)
Hi, With objdump, i have this (Intel syntax) 64 a1 00 00 00 00 mov eax,fs:0x0 However, if I pass above string to llvm-mc, I would have: $ echo "0x64 0xa1 0x00 0x00 0x00 0x00"|./Release+Asserts/bin/llvm-mc -disassemble -arch=x86 --output-asm-variant=1 .text mov eax, dword ptr [0] You can see a big difference. This is on the latest code. Any idea how to
2014 Jan 14
2
[LLVMdev] Some bugs in x86 disasm (llvm-mc)
...gt;wrote: > Hi Jun, > > I'm not sure how to fix this yet, but this looks incorrectly defined in > lib/Target/X86/X86InstrInfo.td: > > def MOV32o32a : Ii32 <0xA1, RawFrm, (outs), (ins offset32:$src), > "mov{l}\t{$src, %eax|eax, $src}", [], IIC_MOV_MEM>, > Requires<[In32BitMode]>; > > This instruction can be REX-prefixed for a 64-bit move, and that also > doesn't appear to be defined anywhere. > > I would file a bugzilla in the x86 component and cc Craig Topper, the x86 > disasm/codegen exper...
2017 Jul 11
2
error: In anonymous_4820: Unrecognized node 'VRR128'!
...t; 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...
2017 Aug 02
2
Efficiently ignoring upper 32 pointer bits when dereferencing
...lexPattern<iPTR, 5, "selectAddr", [], [SDNPWantParent]>; The derefencing mov instruction looks like this: def MOV32rm : I<0x8B, MRMSrcMem, (outs GR32:$dst), (ins i32mem:$src), "mov{l}\t{$src, $dst|$dst, $src}", [(set GR32:$dst, (loadi32 addr:$src))], IIC_MOV_MEM>, OpSize32; So it expects a source address of type 'addr' which is 8 bytes. This leads to the following code being emitted when I apply my solution to problem 1: mov (%rcx),%eax In other words, the upper bits are not ignored. I am currently not sure what is the best place to...
2017 Aug 02
2
Efficiently ignoring upper 32 pointer bits whendereferencing
...uot;selectAddr", [], > [SDNPWantParent]>; > The derefencing mov instruction looks like this: > def MOV32rm : I<0x8B, MRMSrcMem, (outs GR32:$dst), (ins i32mem:$src), > "mov{l}\t{$src, $dst|$dst, $src}", > [(set GR32:$dst, (loadi32 addr:$src))], IIC_MOV_MEM>, OpSize32; > So it expects a source address of type 'addr' which is 8 bytes. This > leads to the following code being emitted when I apply my solution to > problem 1: > mov (%rcx),%eax > In other words, the upper bits are not ignored. > > > I am current...
2015 Mar 25
3
[LLVMdev] [PATCH] fix outs/ins of MOV16mr instruction (X86)
...X86/X86InstrInfo.td > > @@ -1412,7 +1412,7 @@ let SchedRW = [WriteStore] in { > > def MOV8mr : I<0x88, MRMDestMem, (outs), (ins i8mem :$dst, GR8 :$src), > > "mov{b}\t{$src, $dst|$dst, $src}", > > [(store GR8:$src, addr:$dst)], IIC_MOV_MEM>; > > -def MOV16mr : I<0x89, MRMDestMem, (outs), (ins i16mem:$dst, GR16:$src), > > +def MOV16mr : I<0x89, MRMDestMem, (outs i16mem:$dst), (ins GR16:$src), > > "mov{w}\t{$src, $dst|$dst, $src}", > > [(store GR16:$src, addr:...
2017 Jul 08
2
Error in v64i32 type in x86 backend
...e my vector instructions so i wrote; def VMOV_256B_RM : I<0x6F, MRMSrcMem, (outs VR2048:$dst), (ins i32mem:$src), "vmov_256B_rm\t{$src, $dst|$dst, $src}", [(set VR2048:$dst, (v64i32 (scalar_to_vector (loadi32 addr:$src))))], IIC_MOV_MEM>, EVEX; def VMOV_256B_MR : I<0x7F, MRMDestMem, (outs), (ins i32mem:$dst, VR2048:$src), "vmov_256B_mr\t{$src, $dst|$dst, $src}", [(store (i32 (bitconvert VR2048:$src)), addr:$dst)], IIC_MOV_MEM>, EVEX; in x86instrinfo.td; when i build i g...
2017 Jul 08
5
Error in v64i32 type in x86 backend
...$dst, $src}", >>>>>>>>>>>>>> [(set VR2048:$dst, (v64i32 >>>>>>>>>>>>>> (scalar_to_vector (loadi32 addr:$src))))], >>>>>>>>>>>>>> IIC_MOV_MEM>, EVEX; >>>>>>>>>>>>>> >>>>>>>>>>>>>> def VMOV_256B_MR : I<0x7F, MRMDestMem, (outs), (ins >>>>>>>>>>>>>> i32mem:$dst, VR2048:$src), >>>>>>>>&gt...
2018 Mar 01
0
[X86] API to query MCInstr operand types
...type of its memory operands? As an example, consider the following description of MOV32mr (from X86InstrInfo.td) def MOV32mr : I<0x89, MRMDestMem, (outs), (ins i32mem:$dst, GR32:$src), "mov{l}\t{$src, $dst|$dst, $src}", [(store GR32:$src, addr:$dst)], IIC_MOV_MEM>, OpSize32; or that of MOVSX64rm (from X86InstrExtension.td) def MOVSX64rm32: RI<0x63, MRMSrcMem, (outs GR64:$dst), (ins i32mem:$src), "movs{lq|xd}\t{$src, $dst|$dst, $src}", [(set GR64:$dst, (sextloadi64i32 addr:$src))], IIC_MOVSX>,...
2017 Jul 08
2
Error in v64i32 type in x86 backend
...VR2048:$dst), (ins >>>> i32mem:$src), >>>> "vmov_256B_rm\t{$src, $dst|$dst, $src}", >>>> [(set VR2048:$dst, (v64i32 (scalar_to_vector >>>> (loadi32 addr:$src))))], >>>> IIC_MOV_MEM>, EVEX; >>>> >>>> def VMOV_256B_MR : I<0x7F, MRMDestMem, (outs), (ins i32mem:$dst, >>>> VR2048:$src), >>>> "vmov_256B_mr\t{$src, $dst|$dst, $src}", >>>> [(store (i32 (bitconvert VR204...