[PATCH] D11712: Fix bug in COMISD and COMISS definition in td files

Marina Yatsina marina.yatsina at intel.com
Sun Aug 2 06:41:59 PDT 2015


myatsina created this revision.
myatsina added a reviewer: bruno.
myatsina added a subscriber: llvm-commits.
myatsina set the repository for this revision to rL LLVM.

COMISD should receive QWORD because it is defined as
(V)COMISD xmm1, xmm2/m64

COMISS should receive DWORD because it is defined as
(V)COMISS xmm1, xmm2/m32

Repository:
  rL LLVM

http://reviews.llvm.org/D11712

Files:
  lib/Target/X86/X86InstrSSE.td
  test/MC/X86/intel-syntax.s

Index: lib/Target/X86/X86InstrSSE.td
===================================================================
--- lib/Target/X86/X86InstrSSE.td
+++ lib/Target/X86/X86InstrSSE.td
@@ -2456,9 +2456,9 @@
   defm VUCOMISD : sse12_ord_cmp<0x2E, FR64, X86cmp, f64, f64mem, loadf64,
                                   "ucomisd">, PD, VEX, VEX_LIG;
   let Pattern = []<dag> in {
-    defm VCOMISS  : sse12_ord_cmp<0x2F, VR128, undef, v4f32, f128mem, load,
+    defm VCOMISS  : sse12_ord_cmp<0x2F, FR32, undef, f32, f32mem, loadf32,
                                     "comiss">, PS, VEX, VEX_LIG;
-    defm VCOMISD  : sse12_ord_cmp<0x2F, VR128, undef, v2f64, f128mem, load,
+    defm VCOMISD  : sse12_ord_cmp<0x2F, FR64, undef, f64, f64mem, loadf64,
                                     "comisd">, PD, VEX, VEX_LIG;
   }
 
@@ -2479,9 +2479,9 @@
                                   "ucomisd">, PD;
 
   let Pattern = []<dag> in {
-    defm COMISS  : sse12_ord_cmp<0x2F, VR128, undef, v4f32, f128mem, load,
+    defm COMISS  : sse12_ord_cmp<0x2F, FR32, undef, f32, f32mem, loadf32,
                                     "comiss">, PS;
-    defm COMISD  : sse12_ord_cmp<0x2F, VR128, undef, v2f64, f128mem, load,
+    defm COMISD  : sse12_ord_cmp<0x2F, FR64, undef, f64, f64mem, loadf64,
                                     "comisd">, PD;
   }
 
Index: test/MC/X86/intel-syntax.s
===================================================================
--- test/MC/X86/intel-syntax.s
+++ test/MC/X86/intel-syntax.s
@@ -681,3 +681,13 @@
 // CHECK: outsb (%rsi), %dx
 // CHECK: outsw (%rsi), %dx
 // CHECK: outsl (%rsi), %dx
+
+comisd	xmm0, QWORD PTR [eax]
+comiss	xmm0, DWORD PTR [eax]
+vcomisd	xmm0, QWORD PTR [eax]
+vcomiss	xmm0, DWORD PTR [eax]
+
+// CHECK: comisd (%eax), %xmm0
+// CHECK: comiss (%eax), %xmm0
+// CHECK: vcomisd (%eax), %xmm0
+// CHECK: vcomiss (%eax), %xmm0


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11712.31205.patch
Type: text/x-patch
Size: 1891 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150802/5023b021/attachment.bin>


More information about the llvm-commits mailing list