Displaying 2 results from an estimated 2 matches for "r75142".
2009 Jul 09
0
[LLVMdev] Wrong encoding of movd on x64
...movd
> ecx, mm0”. LLVM mistakenly sets the ‘wide’ bit of the REX prefix to 1,
> turning movd into movq. Also, reg and r/m encoding has been swapped. I have
> not found a fix for this yet, but the MMX_MOVD64* definitions and patterns
> looks suspicious.
Thanks for the testcase; fixed in r75142.
> Note that on x86-32 it produces correct code (though not optimal either; it
> doesn’t use movd). Also, notice that the last two instructions above should
> ideally just be a single movd to memory, instead of first writing to a GP
> register.
The suboptimal code on x86-32 is because...
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 =