[llvm] a65883a - [VE] Add vector reduction instructions

Kazushi Marukawa via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 27 10:33:30 PDT 2020


Author: Kazushi (Jam) Marukawa
Date: 2020-10-28T02:33:21+09:00
New Revision: a65883a78a0c1a480d7aa9762eeb61a298e09a5d

URL: https://github.com/llvm/llvm-project/commit/a65883a78a0c1a480d7aa9762eeb61a298e09a5d
DIFF: https://github.com/llvm/llvm-project/commit/a65883a78a0c1a480d7aa9762eeb61a298e09a5d.diff

LOG: [VE] Add vector reduction instructions

Add VSUMS/VSUMX/VFSUM/VMAXS/VMAXX/VFMAX/VRAND/VROR/VRXOR isntructions.
Add regression tests too.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D90227

Added: 
    llvm/test/MC/VE/VFMAX.s
    llvm/test/MC/VE/VFSUM.s
    llvm/test/MC/VE/VMAXS.s
    llvm/test/MC/VE/VRAND.s
    llvm/test/MC/VE/VROR.s
    llvm/test/MC/VE/VRXOR.s
    llvm/test/MC/VE/VSUMS.s
    llvm/test/MC/VE/VSUMX.s

Modified: 
    llvm/lib/Target/VE/VEInstrVec.td

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/VE/VEInstrVec.td b/llvm/lib/Target/VE/VEInstrVec.td
index 24bfee8e5c34..e715a50ae274 100644
--- a/llvm/lib/Target/VE/VEInstrVec.td
+++ b/llvm/lib/Target/VE/VEInstrVec.td
@@ -1116,3 +1116,73 @@ defm VCVTSD : RVF1m<"vcvt.s.d", 0x9f, V64, VM>;
 
 // Section 8.13.19 - VCVD (Vector Convert to Double-format)
 defm VCVTDS : RVF1m<"vcvt.d.s", 0x8f, V64, VM>;
+
+//-----------------------------------------------------------------------------
+// Section 8.14 - Vector Reduction Instructions
+//-----------------------------------------------------------------------------
+
+// Section 8.14.1 - VSUMS (Vector Sum Single)
+defm VSUMWSX : RVF1m<"vsum.w.sx", 0xea, V64, VM>;
+let cx2 = 1 in defm VSUMWZX : RVF1m<"vsum.w.zx", 0xea, V64, VM>;
+
+// Section 8.14.2 - VSUMX (Vector Sum)
+defm VSUML : RVF1m<"vsum.l", 0xaa, V64, VM>;
+
+// Section 8.14.3 - VFSUM (Vector Floating Sum)
+defm VFSUMD : RVF1m<"vfsum.d", 0xec, V64, VM>;
+let cx = 1 in defm VFSUMS : RVF1m<"vfsum.s", 0xec, V64, VM>;
+
+// Section 8.14.4 - VMAXS (Vector Maximum/Minimum Single)
+let cx2 = 0 in defm VRMAXSWFSTSX : RVF1m<"vrmaxs.w.fst.sx", 0xbb, V64, VM>;
+let cx2 = 1 in defm VRMAXSWFSTZX : RVF1m<"vrmaxs.w.fst.zx", 0xbb, V64, VM>;
+let cs = 1 in {
+  let cx2 = 0 in
+  defm VRMAXSWLSTSX : RVF1m<"vrmaxs.w.lst.sx", 0xbb, V64, VM>;
+  let cx2 = 1 in
+  defm VRMAXSWLSTZX : RVF1m<"vrmaxs.w.lst.zx", 0xbb, V64, VM>;
+}
+let cs2 = 1 in {
+  let cx2 = 0 in
+  defm VRMINSWFSTSX : RVF1m<"vrmins.w.fst.sx", 0xbb, V64, VM>;
+  let cx2 = 1 in
+  defm VRMINSWFSTZX : RVF1m<"vrmins.w.fst.zx", 0xbb, V64, VM>;
+  let cs = 1 in {
+    let cx2 = 0 in
+    defm VRMINSWLSTSX : RVF1m<"vrmins.w.lst.sx", 0xbb, V64, VM>;
+    let cx2 = 1 in
+    defm VRMINSWLSTZX : RVF1m<"vrmins.w.lst.zx", 0xbb, V64, VM>;
+  }
+}
+
+// Section 8.14.5 - VMAXX (Vector Maximum/Minimum)
+let cs = 0 in defm VRMAXSLFST : RVF1m<"vrmaxs.l.fst", 0xab, V64, VM>;
+let cs = 1 in defm VRMAXSLLST : RVF1m<"vrmaxs.l.lst", 0xab, V64, VM>;
+let cs2 = 1 in {
+  let cs = 0 in defm VRMINSLFST : RVF1m<"vrmins.l.fst", 0xab, V64, VM>;
+  let cs = 1 in defm VRMINSLLST : RVF1m<"vrmins.l.lst", 0xab, V64, VM>;
+}
+
+// Section 8.14.6 - VFMAX (Vector Floating Maximum/Minimum)
+let cs = 0 in defm VFRMAXDFST : RVF1m<"vfrmax.d.fst", 0xad, V64, VM>;
+let cs = 1 in defm VFRMAXDLST : RVF1m<"vfrmax.d.lst", 0xad, V64, VM>;
+let cs2 = 1 in {
+  let cs = 0 in defm VFRMINDFST : RVF1m<"vfrmin.d.fst", 0xad, V64, VM>;
+  let cs = 1 in defm VFRMINDLST : RVF1m<"vfrmin.d.lst", 0xad, V64, VM>;
+}
+let cx = 1 in {
+  let cs = 0 in defm VFRMAXSFST : RVF1m<"vfrmax.s.fst", 0xad, V64, VM>;
+  let cs = 1 in defm VFRMAXSLST : RVF1m<"vfrmax.s.lst", 0xad, V64, VM>;
+  let cs2 = 1 in {
+    let cs = 0 in defm VFRMINSFST : RVF1m<"vfrmin.s.fst", 0xad, V64, VM>;
+    let cs = 1 in defm VFRMINSLST : RVF1m<"vfrmin.s.lst", 0xad, V64, VM>;
+  }
+}
+
+// Section 8.14.7 - VRAND (Vector Reduction And)
+defm VRAND : RVF1m<"vrand", 0x88, V64, VM>;
+
+// Section 8.14.8 - VROR (Vector Reduction Or)
+defm VROR : RVF1m<"vror", 0x98, V64, VM>;
+
+// Section 8.14.9 - VRXOR (Vector Reduction Exclusive Or)
+defm VRXOR : RVF1m<"vrxor", 0x89, V64, VM>;

diff  --git a/llvm/test/MC/VE/VFMAX.s b/llvm/test/MC/VE/VFMAX.s
new file mode 100644
index 000000000000..b647aa795f71
--- /dev/null
+++ b/llvm/test/MC/VE/VFMAX.s
@@ -0,0 +1,52 @@
+# RUN: llvm-mc -triple=ve --show-encoding < %s \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-INST
+
+# CHECK-INST: vfrmax.d.fst %v11, %v12
+# CHECK-ENCODING: encoding: [0x00,0x00,0x0c,0x0b,0x00,0x00,0x00,0xad]
+vfrmax.d.fst %v11, %v12
+
+# CHECK-INST: vfrmax.d.fst %v11, %vix, %vm11
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x0b,0xad]
+vfrmax.d.fst %v11, %vix, %vm11
+
+# CHECK-INST: vfrmax.d.lst %vix, %v22, %vm15
+# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x00,0x2f,0xad]
+vfrmax.d.lst %vix, %v22, %vm15
+
+# CHECK-INST: vfrmax.s.lst %v63, %v60, %vm2
+# CHECK-ENCODING: encoding: [0x00,0x00,0x3c,0x3f,0x00,0x00,0xa2,0xad]
+vfrmax.s.lst %v63, %v60, %vm2
+
+# CHECK-INST: vfrmax.s.fst %vix, %vix
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x80,0xad]
+vfrmax.s.fst %vix, %vix, %vm0
+
+# CHECK-INST: vfrmax.s.lst %vix, %vix, %vm2
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0xa2,0xad]
+vfrmax.s.lst %vix, %vix, %vm2
+
+# CHECK-INST: vfrmin.d.fst %v11, %v12
+# CHECK-ENCODING: encoding: [0x00,0x00,0x0c,0x0b,0x00,0x00,0x10,0xad]
+vfrmin.d.fst %v11, %v12
+
+# CHECK-INST: vfrmin.d.fst %v11, %vix, %vm11
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x1b,0xad]
+vfrmin.d.fst %v11, %vix, %vm11
+
+# CHECK-INST: vfrmin.d.lst %vix, %v22, %vm15
+# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x00,0x3f,0xad]
+vfrmin.d.lst %vix, %v22, %vm15
+
+# CHECK-INST: vfrmin.s.lst %v63, %v60, %vm2
+# CHECK-ENCODING: encoding: [0x00,0x00,0x3c,0x3f,0x00,0x00,0xb2,0xad]
+vfrmin.s.lst %v63, %v60, %vm2
+
+# CHECK-INST: vfrmin.s.fst %vix, %vix
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x90,0xad]
+vfrmin.s.fst %vix, %vix, %vm0
+
+# CHECK-INST: vfrmin.s.lst %vix, %vix, %vm2
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0xb2,0xad]
+vfrmin.s.lst %vix, %vix, %vm2

diff  --git a/llvm/test/MC/VE/VFSUM.s b/llvm/test/MC/VE/VFSUM.s
new file mode 100644
index 000000000000..313cc0792efb
--- /dev/null
+++ b/llvm/test/MC/VE/VFSUM.s
@@ -0,0 +1,28 @@
+# RUN: llvm-mc -triple=ve --show-encoding < %s \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-INST
+
+# CHECK-INST: vfsum.d %v11, %v12
+# CHECK-ENCODING: encoding: [0x00,0x00,0x0c,0x0b,0x00,0x00,0x00,0xec]
+vfsum.d %v11, %v12
+
+# CHECK-INST: vfsum.d %v11, %vix, %vm11
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x0b,0xec]
+vfsum.d %v11, %vix, %vm11
+
+# CHECK-INST: vfsum.d %vix, %v22, %vm15
+# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x00,0x0f,0xec]
+vfsum.d %vix, %v22, %vm15
+
+# CHECK-INST: vfsum.s %v63, %v60, %vm2
+# CHECK-ENCODING: encoding: [0x00,0x00,0x3c,0x3f,0x00,0x00,0x82,0xec]
+vfsum.s %v63, %v60, %vm2
+
+# CHECK-INST: vfsum.s %vix, %vix
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x80,0xec]
+vfsum.s %vix, %vix, %vm0
+
+# CHECK-INST: vfsum.s %vix, %vix, %vm2
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x82,0xec]
+vfsum.s %vix, %vix, %vm2

diff  --git a/llvm/test/MC/VE/VMAXS.s b/llvm/test/MC/VE/VMAXS.s
new file mode 100644
index 000000000000..307a25bfbf51
--- /dev/null
+++ b/llvm/test/MC/VE/VMAXS.s
@@ -0,0 +1,52 @@
+# RUN: llvm-mc -triple=ve --show-encoding < %s \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-INST
+
+# CHECK-INST: vrmaxs.w.fst.sx %v11, %v12
+# CHECK-ENCODING: encoding: [0x00,0x00,0x0c,0x0b,0x00,0x00,0x00,0xbb]
+vrmaxs.w.fst.sx %v11, %v12
+
+# CHECK-INST: vrmaxs.w.fst.sx %v11, %vix, %vm11
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x0b,0xbb]
+vrmaxs.w.fst.sx %v11, %vix, %vm11
+
+# CHECK-INST: vrmaxs.w.lst.sx %vix, %v22, %vm15
+# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x00,0x2f,0xbb]
+vrmaxs.w.lst.sx %vix, %v22, %vm15
+
+# CHECK-INST: vrmaxs.w.lst.zx %v63, %v60, %vm2
+# CHECK-ENCODING: encoding: [0x00,0x00,0x3c,0x3f,0x00,0x00,0x62,0xbb]
+vrmaxs.w.lst.zx %v63, %v60, %vm2
+
+# CHECK-INST: vrmaxs.w.fst.zx %vix, %vix
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x40,0xbb]
+vrmaxs.w.fst.zx %vix, %vix, %vm0
+
+# CHECK-INST: vrmaxs.w.lst.zx %vix, %vix, %vm2
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x62,0xbb]
+vrmaxs.w.lst.zx %vix, %vix, %vm2
+
+# CHECK-INST: vrmins.w.fst.sx %v11, %v12
+# CHECK-ENCODING: encoding: [0x00,0x00,0x0c,0x0b,0x00,0x00,0x10,0xbb]
+vrmins.w.fst.sx %v11, %v12
+
+# CHECK-INST: vrmins.w.fst.sx %v11, %vix, %vm11
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x1b,0xbb]
+vrmins.w.fst.sx %v11, %vix, %vm11
+
+# CHECK-INST: vrmins.w.lst.sx %vix, %v22, %vm15
+# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x00,0x3f,0xbb]
+vrmins.w.lst.sx %vix, %v22, %vm15
+
+# CHECK-INST: vrmins.w.lst.zx %v63, %v60, %vm2
+# CHECK-ENCODING: encoding: [0x00,0x00,0x3c,0x3f,0x00,0x00,0x72,0xbb]
+vrmins.w.lst.zx %v63, %v60, %vm2
+
+# CHECK-INST: vrmins.w.fst.zx %vix, %vix
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x50,0xbb]
+vrmins.w.fst.zx %vix, %vix, %vm0
+
+# CHECK-INST: vrmins.w.lst.zx %vix, %vix, %vm2
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x72,0xbb]
+vrmins.w.lst.zx %vix, %vix, %vm2

diff  --git a/llvm/test/MC/VE/VRAND.s b/llvm/test/MC/VE/VRAND.s
new file mode 100644
index 000000000000..8ff5eac88102
--- /dev/null
+++ b/llvm/test/MC/VE/VRAND.s
@@ -0,0 +1,20 @@
+# RUN: llvm-mc -triple=ve --show-encoding < %s \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-INST
+
+# CHECK-INST: vrand %v11, %v22
+# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x00,0x00,0x88]
+vrand %v11, %v22
+
+# CHECK-INST: vrand %vix, %vix
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x88]
+vrand %vix, %vix
+
+# CHECK-INST: vrand %v11, %v22, %vm11
+# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x00,0x0b,0x88]
+vrand %v11, %v22, %vm11
+
+# CHECK-INST: vrand %v11, %vix, %vm15
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x0f,0x88]
+vrand %v11, %vix, %vm15

diff  --git a/llvm/test/MC/VE/VROR.s b/llvm/test/MC/VE/VROR.s
new file mode 100644
index 000000000000..78a4d4525f1d
--- /dev/null
+++ b/llvm/test/MC/VE/VROR.s
@@ -0,0 +1,20 @@
+# RUN: llvm-mc -triple=ve --show-encoding < %s \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-INST
+
+# CHECK-INST: vror %v11, %v22
+# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x00,0x00,0x98]
+vror %v11, %v22
+
+# CHECK-INST: vror %vix, %vix
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x98]
+vror %vix, %vix
+
+# CHECK-INST: vror %v11, %v22, %vm11
+# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x00,0x0b,0x98]
+vror %v11, %v22, %vm11
+
+# CHECK-INST: vror %v11, %vix, %vm15
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x0f,0x98]
+vror %v11, %vix, %vm15

diff  --git a/llvm/test/MC/VE/VRXOR.s b/llvm/test/MC/VE/VRXOR.s
new file mode 100644
index 000000000000..e29eed5c3de5
--- /dev/null
+++ b/llvm/test/MC/VE/VRXOR.s
@@ -0,0 +1,20 @@
+# RUN: llvm-mc -triple=ve --show-encoding < %s \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-INST
+
+# CHECK-INST: vrxor %v11, %v22
+# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x00,0x00,0x89]
+vrxor %v11, %v22
+
+# CHECK-INST: vrxor %vix, %vix
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x89]
+vrxor %vix, %vix
+
+# CHECK-INST: vrxor %v11, %v22, %vm11
+# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0x0b,0x00,0x00,0x0b,0x89]
+vrxor %v11, %v22, %vm11
+
+# CHECK-INST: vrxor %v11, %vix, %vm15
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x0f,0x89]
+vrxor %v11, %vix, %vm15

diff  --git a/llvm/test/MC/VE/VSUMS.s b/llvm/test/MC/VE/VSUMS.s
new file mode 100644
index 000000000000..c0b36136e591
--- /dev/null
+++ b/llvm/test/MC/VE/VSUMS.s
@@ -0,0 +1,28 @@
+# RUN: llvm-mc -triple=ve --show-encoding < %s \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-INST
+
+# CHECK-INST: vsum.w.sx %v11, %v12
+# CHECK-ENCODING: encoding: [0x00,0x00,0x0c,0x0b,0x00,0x00,0x00,0xea]
+vsum.w.sx %v11, %v12
+
+# CHECK-INST: vsum.w.sx %v11, %vix, %vm11
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x0b,0xea]
+vsum.w.sx %v11, %vix, %vm11
+
+# CHECK-INST: vsum.w.sx %vix, %v22, %vm15
+# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x00,0x0f,0xea]
+vsum.w.sx %vix, %v22, %vm15
+
+# CHECK-INST: vsum.w.zx %v63, %v60, %vm2
+# CHECK-ENCODING: encoding: [0x00,0x00,0x3c,0x3f,0x00,0x00,0x42,0xea]
+vsum.w.zx %v63, %v60, %vm2
+
+# CHECK-INST: vsum.w.zx %vix, %vix
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x40,0xea]
+vsum.w.zx %vix, %vix, %vm0
+
+# CHECK-INST: vsum.w.zx %vix, %vix, %vm2
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x42,0xea]
+vsum.w.zx %vix, %vix, %vm2

diff  --git a/llvm/test/MC/VE/VSUMX.s b/llvm/test/MC/VE/VSUMX.s
new file mode 100644
index 000000000000..e440048e9ca4
--- /dev/null
+++ b/llvm/test/MC/VE/VSUMX.s
@@ -0,0 +1,28 @@
+# RUN: llvm-mc -triple=ve --show-encoding < %s \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+# RUN: llvm-mc -triple=ve -filetype=obj < %s | llvm-objdump -d - \
+# RUN:     | FileCheck %s --check-prefixes=CHECK-INST
+
+# CHECK-INST: vsum.l %v11, %v12
+# CHECK-ENCODING: encoding: [0x00,0x00,0x0c,0x0b,0x00,0x00,0x00,0xaa]
+vsum.l %v11, %v12
+
+# CHECK-INST: vsum.l %v11, %vix, %vm11
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0x0b,0x00,0x00,0x0b,0xaa]
+vsum.l %v11, %vix, %vm11
+
+# CHECK-INST: vsum.l %vix, %v22, %vm15
+# CHECK-ENCODING: encoding: [0x00,0x00,0x16,0xff,0x00,0x00,0x0f,0xaa]
+vsum.l %vix, %v22, %vm15
+
+# CHECK-INST: vsum.l %v63, %v60, %vm2
+# CHECK-ENCODING: encoding: [0x00,0x00,0x3c,0x3f,0x00,0x00,0x02,0xaa]
+vsum.l %v63, %v60, %vm2
+
+# CHECK-INST: vsum.l %vix, %vix
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xaa]
+vsum.l %vix, %vix, %vm0
+
+# CHECK-INST: vsum.l %vix, %vix, %vm2
+# CHECK-ENCODING: encoding: [0x00,0x00,0xff,0xff,0x00,0x00,0x02,0xaa]
+vsum.l %vix, %vix, %vm2


        


More information about the llvm-commits mailing list