mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Fix pastos in handling of AVX cvttsd2si, PR8491.
Bruno, please review, but I'm pretty sure this is right. Patch by Alex Mac! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117514 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cfd0e1f3ae
commit
e49406fd63
@ -654,10 +654,10 @@ defm Int_VCVTTSS2SI64 : sse12_cvt_sint<0x2C, VR128, GR64,
|
|||||||
int_x86_sse_cvttss2si64, f32mem, load,
|
int_x86_sse_cvttss2si64, f32mem, load,
|
||||||
"cvttss2si">, XS, VEX, VEX_W;
|
"cvttss2si">, XS, VEX, VEX_W;
|
||||||
defm Int_VCVTTSD2SI : sse12_cvt_sint<0x2C, VR128, GR32, int_x86_sse2_cvttsd2si,
|
defm Int_VCVTTSD2SI : sse12_cvt_sint<0x2C, VR128, GR32, int_x86_sse2_cvttsd2si,
|
||||||
f128mem, load, "cvttss2si">, XD, VEX;
|
f128mem, load, "cvttsd2si">, XD, VEX;
|
||||||
defm Int_VCVTTSD2SI64 : sse12_cvt_sint<0x2C, VR128, GR64,
|
defm Int_VCVTTSD2SI64 : sse12_cvt_sint<0x2C, VR128, GR64,
|
||||||
int_x86_sse2_cvttsd2si64, f128mem, load,
|
int_x86_sse2_cvttsd2si64, f128mem, load,
|
||||||
"cvttss2si">, XD, VEX, VEX_W;
|
"cvttsd2si">, XD, VEX, VEX_W;
|
||||||
}
|
}
|
||||||
defm Int_CVTTSS2SI : sse12_cvt_sint<0x2C, VR128, GR32, int_x86_sse_cvttss2si,
|
defm Int_CVTTSS2SI : sse12_cvt_sint<0x2C, VR128, GR32, int_x86_sse_cvttss2si,
|
||||||
f32mem, load, "cvttss2si">, XS;
|
f32mem, load, "cvttss2si">, XS;
|
||||||
@ -665,10 +665,10 @@ defm Int_CVTTSS2SI64 : sse12_cvt_sint<0x2C, VR128, GR64,
|
|||||||
int_x86_sse_cvttss2si64, f32mem, load,
|
int_x86_sse_cvttss2si64, f32mem, load,
|
||||||
"cvttss2si{q}">, XS, REX_W;
|
"cvttss2si{q}">, XS, REX_W;
|
||||||
defm Int_CVTTSD2SI : sse12_cvt_sint<0x2C, VR128, GR32, int_x86_sse2_cvttsd2si,
|
defm Int_CVTTSD2SI : sse12_cvt_sint<0x2C, VR128, GR32, int_x86_sse2_cvttsd2si,
|
||||||
f128mem, load, "cvttss2si">, XD;
|
f128mem, load, "cvttsd2si">, XD;
|
||||||
defm Int_CVTTSD2SI64 : sse12_cvt_sint<0x2C, VR128, GR64,
|
defm Int_CVTTSD2SI64 : sse12_cvt_sint<0x2C, VR128, GR64,
|
||||||
int_x86_sse2_cvttsd2si64, f128mem, load,
|
int_x86_sse2_cvttsd2si64, f128mem, load,
|
||||||
"cvttss2si{q}">, XD, REX_W;
|
"cvttsd2si{q}">, XD, REX_W;
|
||||||
|
|
||||||
let isAsmParserOnly = 1, Pattern = []<dag> in {
|
let isAsmParserOnly = 1, Pattern = []<dag> in {
|
||||||
defm VCVTSS2SI : sse12_cvt_s<0x2D, FR32, GR32, undef, f32mem, load,
|
defm VCVTSS2SI : sse12_cvt_s<0x2D, FR32, GR32, undef, f32mem, load,
|
||||||
|
@ -230,7 +230,7 @@ declare <4 x i32> @llvm.x86.sse2.cvttps2dq(<4 x float>) nounwind readnone
|
|||||||
|
|
||||||
|
|
||||||
define i32 @test_x86_sse2_cvttsd2si(<2 x double> %a0) {
|
define i32 @test_x86_sse2_cvttsd2si(<2 x double> %a0) {
|
||||||
; CHECK: vcvttss2si
|
; CHECK: vcvttsd2si
|
||||||
%res = call i32 @llvm.x86.sse2.cvttsd2si(<2 x double> %a0) ; <i32> [#uses=1]
|
%res = call i32 @llvm.x86.sse2.cvttsd2si(<2 x double> %a0) ; <i32> [#uses=1]
|
||||||
ret i32 %res
|
ret i32 %res
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ declare <2 x double> @llvm.x86.sse2.cvtsi642sd(<2 x double>, i64) nounwind readn
|
|||||||
|
|
||||||
|
|
||||||
define i64 @test_x86_sse2_cvttsd2si64(<2 x double> %a0) {
|
define i64 @test_x86_sse2_cvttsd2si64(<2 x double> %a0) {
|
||||||
; CHECK: vcvttss2si
|
; CHECK: vcvttsd2si
|
||||||
%res = call i64 @llvm.x86.sse2.cvttsd2si64(<2 x double> %a0) ; <i64> [#uses=1]
|
%res = call i64 @llvm.x86.sse2.cvttsd2si64(<2 x double> %a0) ; <i64> [#uses=1]
|
||||||
ret i64 %res
|
ret i64 %res
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user