summaryrefslogtreecommitdiff
path: root/test/MC/X86/x86-32-avx.s
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2013-01-06 20:39:29 +0000
committerCraig Topper <craig.topper@gmail.com>2013-01-06 20:39:29 +0000
commitf564a9389da68266f44314fe38ab399fd2211134 (patch)
treea45d4cbded5f756f85763884ebf09a8bf11449b7 /test/MC/X86/x86-32-avx.s
parent700843ec2c4cb4aa442377809c6ebb3ae3030c61 (diff)
downloadllvm-f564a9389da68266f44314fe38ab399fd2211134.tar.gz
llvm-f564a9389da68266f44314fe38ab399fd2211134.tar.bz2
llvm-f564a9389da68266f44314fe38ab399fd2211134.tar.xz
Fix suffix handling for parsing and printing of cvtsi2ss, cvtsi2sd, cvtss2si, cvttss2si, cvtsd2si, and cvttsd2si to match gas behavior.
cvtsi2* should parse with an 'l' or 'q' suffix or no suffix at all. No suffix should be treated the same as 'l' suffix. Printing should always print a suffix. Previously we didn't parse or print an 'l' suffix. cvtt*2si/cvt*2si should parse with an 'l' or 'q' suffix or not suffix at all. No suffix should use the destination register size to choose encoding. Printing should not print a suffix. Original 'l' suffix issue with cvtsi2* pointed out by Michael Kuperstein. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171668 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/X86/x86-32-avx.s')
-rw-r--r--test/MC/X86/x86-32-avx.s60
1 files changed, 50 insertions, 10 deletions
diff --git a/test/MC/X86/x86-32-avx.s b/test/MC/X86/x86-32-avx.s
index 586f3fe73c..ec4abdbb2a 100644
--- a/test/MC/X86/x86-32-avx.s
+++ b/test/MC/X86/x86-32-avx.s
@@ -655,14 +655,22 @@
// CHECK: encoding: [0xc5,0xfa,0x2c,0x01]
vcvttss2si (%ecx), %eax
-// CHECK: vcvtsi2ss (%eax), %xmm1, %xmm2
+// CHECK: vcvtsi2ssl (%eax), %xmm1, %xmm2
// CHECK: encoding: [0xc5,0xf2,0x2a,0x10]
vcvtsi2ss (%eax), %xmm1, %xmm2
-// CHECK: vcvtsi2ss (%eax), %xmm1, %xmm2
+// CHECK: vcvtsi2ssl (%eax), %xmm1, %xmm2
// CHECK: encoding: [0xc5,0xf2,0x2a,0x10]
vcvtsi2ss (%eax), %xmm1, %xmm2
+// CHECK: vcvtsi2ssl (%eax), %xmm1, %xmm2
+// CHECK: encoding: [0xc5,0xf2,0x2a,0x10]
+ vcvtsi2ssl (%eax), %xmm1, %xmm2
+
+// CHECK: vcvtsi2ssl (%eax), %xmm1, %xmm2
+// CHECK: encoding: [0xc5,0xf2,0x2a,0x10]
+ vcvtsi2ssl (%eax), %xmm1, %xmm2
+
// CHECK: vcvttsd2si %xmm1, %eax
// CHECK: encoding: [0xc5,0xfb,0x2c,0xc1]
vcvttsd2si %xmm1, %eax
@@ -671,14 +679,22 @@
// CHECK: encoding: [0xc5,0xfb,0x2c,0x01]
vcvttsd2si (%ecx), %eax
-// CHECK: vcvtsi2sd (%eax), %xmm1, %xmm2
+// CHECK: vcvtsi2sdl (%eax), %xmm1, %xmm2
// CHECK: encoding: [0xc5,0xf3,0x2a,0x10]
vcvtsi2sd (%eax), %xmm1, %xmm2
-// CHECK: vcvtsi2sd (%eax), %xmm1, %xmm2
+// CHECK: vcvtsi2sdl (%eax), %xmm1, %xmm2
// CHECK: encoding: [0xc5,0xf3,0x2a,0x10]
vcvtsi2sd (%eax), %xmm1, %xmm2
+// CHECK: vcvtsi2sdl (%eax), %xmm1, %xmm2
+// CHECK: encoding: [0xc5,0xf3,0x2a,0x10]
+ vcvtsi2sdl (%eax), %xmm1, %xmm2
+
+// CHECK: vcvtsi2sdl (%eax), %xmm1, %xmm2
+// CHECK: encoding: [0xc5,0xf3,0x2a,0x10]
+ vcvtsi2sdl (%eax), %xmm1, %xmm2
+
// CHECK: vmovaps (%eax), %xmm2
// CHECK: encoding: [0xc5,0xf8,0x28,0x10]
vmovaps (%eax), %xmm2
@@ -767,14 +783,22 @@
// CHECK: encoding: [0xc5,0xe8,0x12,0xd9]
vmovhlps %xmm1, %xmm2, %xmm3
-// CHECK: vcvtss2sil %xmm1, %eax
+// CHECK: vcvtss2si %xmm1, %eax
// CHECK: encoding: [0xc5,0xfa,0x2d,0xc1]
vcvtss2si %xmm1, %eax
-// CHECK: vcvtss2sil (%eax), %ebx
+// CHECK: vcvtss2si (%eax), %ebx
// CHECK: encoding: [0xc5,0xfa,0x2d,0x18]
vcvtss2si (%eax), %ebx
+// CHECK: vcvtss2si %xmm1, %eax
+// CHECK: encoding: [0xc5,0xfa,0x2d,0xc1]
+ vcvtss2sil %xmm1, %eax
+
+// CHECK: vcvtss2si (%eax), %ebx
+// CHECK: encoding: [0xc5,0xfa,0x2d,0x18]
+ vcvtss2sil (%eax), %ebx
+
// CHECK: vcvtdq2ps %xmm5, %xmm6
// CHECK: encoding: [0xc5,0xf8,0x5b,0xf5]
vcvtdq2ps %xmm5, %xmm6
@@ -3103,19 +3127,35 @@
// CHECK: encoding: [0xc5,0xf8,0x77]
vzeroupper
-// CHECK: vcvtsd2sil %xmm4, %ecx
+// CHECK: vcvtsd2si %xmm4, %ecx
// CHECK: encoding: [0xc5,0xfb,0x2d,0xcc]
vcvtsd2sil %xmm4, %ecx
-// CHECK: vcvtsd2sil (%ecx), %ecx
+// CHECK: vcvtsd2si (%ecx), %ecx
// CHECK: encoding: [0xc5,0xfb,0x2d,0x09]
vcvtsd2sil (%ecx), %ecx
-// CHECK: vcvtsi2sd (%ebp), %xmm0, %xmm7
+// CHECK: vcvtsd2si %xmm4, %ecx
+// CHECK: encoding: [0xc5,0xfb,0x2d,0xcc]
+ vcvtsd2si %xmm4, %ecx
+
+// CHECK: vcvtsd2si (%ecx), %ecx
+// CHECK: encoding: [0xc5,0xfb,0x2d,0x09]
+ vcvtsd2si (%ecx), %ecx
+
+// CHECK: vcvtsi2sdl (%ebp), %xmm0, %xmm7
+// CHECK: encoding: [0xc5,0xfb,0x2a,0x7d,0x00]
+ vcvtsi2sdl (%ebp), %xmm0, %xmm7
+
+// CHECK: vcvtsi2sdl (%esp), %xmm0, %xmm7
+// CHECK: encoding: [0xc5,0xfb,0x2a,0x3c,0x24]
+ vcvtsi2sdl (%esp), %xmm0, %xmm7
+
+// CHECK: vcvtsi2sdl (%ebp), %xmm0, %xmm7
// CHECK: encoding: [0xc5,0xfb,0x2a,0x7d,0x00]
vcvtsi2sd (%ebp), %xmm0, %xmm7
-// CHECK: vcvtsi2sd (%esp), %xmm0, %xmm7
+// CHECK: vcvtsi2sdl (%esp), %xmm0, %xmm7
// CHECK: encoding: [0xc5,0xfb,0x2a,0x3c,0x24]
vcvtsi2sd (%esp), %xmm0, %xmm7