search for: mmx_movq2dqrr

Displaying 4 results from an estimated 4 matches for "mmx_movq2dqrr".

2008 Jul 31
2
[LLVMdev] Generating movq2dq using IRBuilder
...ch generates valid code but rather a number of stores and loads on the stack instead of a single movq2dq. Looking though the code, I found a pattern for the instruction in X86GenDAGISEL.inc, but it describes a i64 to v2i64 bitcast (which isn't allowed by IRBuilder). Also, it is described as MMX_MOVQ2DQrr and only checks for MMX support, while it's really an SSE2 instruction. Actually zext from 32 to 64 and 32 to 128 bit would also be useful, using movd and movq instructions. I couldn't find ways to generate these instructions. I believe they should also be supported as intrinsics, so if...
2009 Jul 09
0
[LLVMdev] Wrong encoding of movd on x64
...e been able to fix the first two definitions by using MRMSrcReg (and set > hasNoSideEffects). I’m not sure about the third definition though, is this > for 3DNow! And should it use MRMSrcReg as well? Also fixed in r75142. Note that MMX_MOVQ2FR64rr is actually exactly the same instruction as MMX_MOVQ2DQrr; they're separated because it's a bit more straightforward to write that way (FR64 and VR128 are both XMM registers, but TableGen isn't aware of the precise relationship). -Eli
2009 Jul 09
2
[LLVMdev] Wrong encoding of movd on x64
Hi all, I believe I've found a bug in the encoding of the movd instruction on x64. Here's some IR code to reproduce it: external global i8*, align 1 ; <i8**>:0 [#uses=1] external global i8*, align 16 ; <i8**>:1 [#uses=1] declare void @abort() define internal void @2() { %1 = load i8** @0, align 1 ; <i8*> [#uses=1] %2 =
2008 Jul 31
0
[LLVMdev] Generating movq2dq using IRBuilder
...ch generates valid code but rather a number of stores and loads on the stack instead of a single movq2dq. Looking though the code, I found a pattern for the instruction in X86GenDAGISEL.inc, but it describes a i64 to v2i64 bitcast (which isn't allowed by IRBuilder). Also, it is described as MMX_MOVQ2DQrr and only checks for MMX support, while it's really an SSE2 instruction. Actually zext from 32 to 64 and 32 to 128 bit would also be useful, using movd and movq instructions. I couldn't find ways to generate these instructions. I believe they should also be supported as intrinsics, so if...