summaryrefslogtreecommitdiff
path: root/test/MC/Mips
diff options
context:
space:
mode:
authorJack Carter <jack.carter@imgtec.com>2013-09-30 17:58:07 +0000
committerJack Carter <jack.carter@imgtec.com>2013-09-30 17:58:07 +0000
commitb0247157c6d44363c36cffd0aeea0e2fa83d9335 (patch)
treea8b7b8c13aba1fcd6f970d25870fc8cfe9eca5df /test/MC/Mips
parenta64fa348df0f5d80109ae244b03142b3c4f9a981 (diff)
downloadllvm-b0247157c6d44363c36cffd0aeea0e2fa83d9335.tar.gz
llvm-b0247157c6d44363c36cffd0aeea0e2fa83d9335.tar.bz2
llvm-b0247157c6d44363c36cffd0aeea0e2fa83d9335.tar.xz
[mips][msa] Direct Object Emission for I5 instructions.
This patch adds Direct Object Emission support for I5 instructions: addvi.{b,h,w,d}, ceqi.{b,h,w,d}, clei_s.{b,h,w,d}, clei_u.{b,h,w,d}, clti_s.{b,h,w,d}, clti_u.{b,h,w,d}, maxi_s.{b,h,w,d}, maxi_u.{b,h,w,d}, mini_s.{b,h,w,d}, mini_u.{b,h,w,d}, subvi.{b,h,w,d}. Patch by Matheus Almeida git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191687 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/Mips')
-rw-r--r--test/MC/Mips/msa/test_i5.s138
1 files changed, 138 insertions, 0 deletions
diff --git a/test/MC/Mips/msa/test_i5.s b/test/MC/Mips/msa/test_i5.s
new file mode 100644
index 0000000000..992bfe1a2a
--- /dev/null
+++ b/test/MC/Mips/msa/test_i5.s
@@ -0,0 +1,138 @@
+# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 -mattr=+msa -arch=mips | FileCheck %s
+#
+# RUN: llvm-mc %s -triple=mipsel-unknown-linux -mcpu=mips32r2 -mattr=+msa -arch=mips -filetype=obj -o - | llvm-objdump -d -triple=mipsel-unknown-linux -mattr=+msa -arch=mips - | FileCheck %s -check-prefix=CHECKOBJDUMP
+#
+# CHECK: addvi.b $w3, $w31, 30 # encoding: [0x78,0x1e,0xf8,0xc6]
+# CHECK: addvi.h $w24, $w13, 26 # encoding: [0x78,0x3a,0x6e,0x06]
+# CHECK: addvi.w $w26, $w20, 26 # encoding: [0x78,0x5a,0xa6,0x86]
+# CHECK: addvi.d $w16, $w1, 21 # encoding: [0x78,0x75,0x0c,0x06]
+# CHECK: ceqi.b $w24, $w21, -8 # encoding: [0x78,0x18,0xae,0x07]
+# CHECK: ceqi.h $w31, $w15, 2 # encoding: [0x78,0x22,0x7f,0xc7]
+# CHECK: ceqi.w $w12, $w1, -1 # encoding: [0x78,0x5f,0x0b,0x07]
+# CHECK: ceqi.d $w24, $w22, 7 # encoding: [0x78,0x67,0xb6,0x07]
+# CHECK: clei_s.b $w12, $w16, 1 # encoding: [0x7a,0x01,0x83,0x07]
+# CHECK: clei_s.h $w2, $w10, -9 # encoding: [0x7a,0x37,0x50,0x87]
+# CHECK: clei_s.w $w4, $w11, -10 # encoding: [0x7a,0x56,0x59,0x07]
+# CHECK: clei_s.d $w0, $w29, -10 # encoding: [0x7a,0x76,0xe8,0x07]
+# CHECK: clei_u.b $w21, $w17, 3 # encoding: [0x7a,0x83,0x8d,0x47]
+# CHECK: clei_u.h $w29, $w7, 17 # encoding: [0x7a,0xb1,0x3f,0x47]
+# CHECK: clei_u.w $w1, $w1, 2 # encoding: [0x7a,0xc2,0x08,0x47]
+# CHECK: clei_u.d $w27, $w27, 29 # encoding: [0x7a,0xfd,0xde,0xc7]
+# CHECK: clti_s.b $w19, $w13, -7 # encoding: [0x79,0x19,0x6c,0xc7]
+# CHECK: clti_s.h $w15, $w10, -12 # encoding: [0x79,0x34,0x53,0xc7]
+# CHECK: clti_s.w $w12, $w12, 11 # encoding: [0x79,0x4b,0x63,0x07]
+# CHECK: clti_s.d $w29, $w20, -15 # encoding: [0x79,0x71,0xa7,0x47]
+# CHECK: clti_u.b $w14, $w9, 29 # encoding: [0x79,0x9d,0x4b,0x87]
+# CHECK: clti_u.h $w24, $w25, 25 # encoding: [0x79,0xb9,0xce,0x07]
+# CHECK: clti_u.w $w1, $w1, 22 # encoding: [0x79,0xd6,0x08,0x47]
+# CHECK: clti_u.d $w21, $w25, 1 # encoding: [0x79,0xe1,0xcd,0x47]
+# CHECK: maxi_s.b $w22, $w21, 1 # encoding: [0x79,0x01,0xad,0x86]
+# CHECK: maxi_s.h $w29, $w5, -8 # encoding: [0x79,0x38,0x2f,0x46]
+# CHECK: maxi_s.w $w1, $w10, -12 # encoding: [0x79,0x54,0x50,0x46]
+# CHECK: maxi_s.d $w13, $w29, -16 # encoding: [0x79,0x70,0xeb,0x46]
+# CHECK: maxi_u.b $w20, $w0, 12 # encoding: [0x79,0x8c,0x05,0x06]
+# CHECK: maxi_u.h $w1, $w14, 3 # encoding: [0x79,0xa3,0x70,0x46]
+# CHECK: maxi_u.w $w27, $w22, 11 # encoding: [0x79,0xcb,0xb6,0xc6]
+# CHECK: maxi_u.d $w26, $w6, 4 # encoding: [0x79,0xe4,0x36,0x86]
+# CHECK: mini_s.b $w4, $w1, 1 # encoding: [0x7a,0x01,0x09,0x06]
+# CHECK: mini_s.h $w27, $w27, -9 # encoding: [0x7a,0x37,0xde,0xc6]
+# CHECK: mini_s.w $w28, $w11, 9 # encoding: [0x7a,0x49,0x5f,0x06]
+# CHECK: mini_s.d $w11, $w10, 10 # encoding: [0x7a,0x6a,0x52,0xc6]
+# CHECK: mini_u.b $w18, $w23, 27 # encoding: [0x7a,0x9b,0xbc,0x86]
+# CHECK: mini_u.h $w7, $w26, 18 # encoding: [0x7a,0xb2,0xd1,0xc6]
+# CHECK: mini_u.w $w11, $w12, 26 # encoding: [0x7a,0xda,0x62,0xc6]
+# CHECK: mini_u.d $w11, $w15, 2 # encoding: [0x7a,0xe2,0x7a,0xc6]
+# CHECK: subvi.b $w24, $w20, 19 # encoding: [0x78,0x93,0xa6,0x06]
+# CHECK: subvi.h $w11, $w19, 4 # encoding: [0x78,0xa4,0x9a,0xc6]
+# CHECK: subvi.w $w12, $w10, 11 # encoding: [0x78,0xcb,0x53,0x06]
+# CHECK: subvi.d $w19, $w16, 7 # encoding: [0x78,0xe7,0x84,0xc6]
+
+# CHECKOBJDUMP: addvi.b $w3, $w31, 30
+# CHECKOBJDUMP: addvi.h $w24, $w13, 26
+# CHECKOBJDUMP: addvi.w $w26, $w20, 26
+# CHECKOBJDUMP: addvi.d $w16, $w1, 21
+# CHECKOBJDUMP: ceqi.b $w24, $w21, 24
+# CHECKOBJDUMP: ceqi.h $w31, $w15, 2
+# CHECKOBJDUMP: ceqi.w $w12, $w1, 31
+# CHECKOBJDUMP: ceqi.d $w24, $w22, 7
+# CHECKOBJDUMP: clei_s.b $w12, $w16, 1
+# CHECKOBJDUMP: clei_s.h $w2, $w10, 23
+# CHECKOBJDUMP: clei_s.w $w4, $w11, 22
+# CHECKOBJDUMP: clei_s.d $w0, $w29, 22
+# CHECKOBJDUMP: clei_u.b $w21, $w17, 3
+# CHECKOBJDUMP: clei_u.h $w29, $w7, 17
+# CHECKOBJDUMP: clei_u.w $w1, $w1, 2
+# CHECKOBJDUMP: clei_u.d $w27, $w27, 29
+# CHECKOBJDUMP: clti_s.b $w19, $w13, 25
+# CHECKOBJDUMP: clti_s.h $w15, $w10, 20
+# CHECKOBJDUMP: clti_s.w $w12, $w12, 11
+# CHECKOBJDUMP: clti_s.d $w29, $w20, 17
+# CHECKOBJDUMP: clti_u.b $w14, $w9, 29
+# CHECKOBJDUMP: clti_u.h $w24, $w25, 25
+# CHECKOBJDUMP: clti_u.w $w1, $w1, 22
+# CHECKOBJDUMP: clti_u.d $w21, $w25, 1
+# CHECKOBJDUMP: maxi_s.b $w22, $w21, 1
+# CHECKOBJDUMP: maxi_s.h $w29, $w5, 24
+# CHECKOBJDUMP: maxi_s.w $w1, $w10, 20
+# CHECKOBJDUMP: maxi_s.d $w13, $w29, 16
+# CHECKOBJDUMP: maxi_u.b $w20, $w0, 12
+# CHECKOBJDUMP: maxi_u.h $w1, $w14, 3
+# CHECKOBJDUMP: maxi_u.w $w27, $w22, 11
+# CHECKOBJDUMP: maxi_u.d $w26, $w6, 4
+# CHECKOBJDUMP: mini_s.b $w4, $w1, 1
+# CHECKOBJDUMP: mini_s.h $w27, $w27, 23
+# CHECKOBJDUMP: mini_s.w $w28, $w11, 9
+# CHECKOBJDUMP: mini_s.d $w11, $w10, 10
+# CHECKOBJDUMP: mini_u.b $w18, $w23, 27
+# CHECKOBJDUMP: mini_u.h $w7, $w26, 18
+# CHECKOBJDUMP: mini_u.w $w11, $w12, 26
+# CHECKOBJDUMP: mini_u.d $w11, $w15, 2
+# CHECKOBJDUMP: subvi.b $w24, $w20, 19
+# CHECKOBJDUMP: subvi.h $w11, $w19, 4
+# CHECKOBJDUMP: subvi.w $w12, $w10, 11
+# CHECKOBJDUMP: subvi.d $w19, $w16, 7
+
+ addvi.b $w3, $w31, 30
+ addvi.h $w24, $w13, 26
+ addvi.w $w26, $w20, 26
+ addvi.d $w16, $w1, 21
+ ceqi.b $w24, $w21, -8
+ ceqi.h $w31, $w15, 2
+ ceqi.w $w12, $w1, -1
+ ceqi.d $w24, $w22, 7
+ clei_s.b $w12, $w16, 1
+ clei_s.h $w2, $w10, -9
+ clei_s.w $w4, $w11, -10
+ clei_s.d $w0, $w29, -10
+ clei_u.b $w21, $w17, 3
+ clei_u.h $w29, $w7, 17
+ clei_u.w $w1, $w1, 2
+ clei_u.d $w27, $w27, 29
+ clti_s.b $w19, $w13, -7
+ clti_s.h $w15, $w10, -12
+ clti_s.w $w12, $w12, 11
+ clti_s.d $w29, $w20, -15
+ clti_u.b $w14, $w9, 29
+ clti_u.h $w24, $w25, 25
+ clti_u.w $w1, $w1, 22
+ clti_u.d $w21, $w25, 1
+ maxi_s.b $w22, $w21, 1
+ maxi_s.h $w29, $w5, -8
+ maxi_s.w $w1, $w10, -12
+ maxi_s.d $w13, $w29, -16
+ maxi_u.b $w20, $w0, 12
+ maxi_u.h $w1, $w14, 3
+ maxi_u.w $w27, $w22, 11
+ maxi_u.d $w26, $w6, 4
+ mini_s.b $w4, $w1, 1
+ mini_s.h $w27, $w27, -9
+ mini_s.w $w28, $w11, 9
+ mini_s.d $w11, $w10, 10
+ mini_u.b $w18, $w23, 27
+ mini_u.h $w7, $w26, 18
+ mini_u.w $w11, $w12, 26
+ mini_u.d $w11, $w15, 2
+ subvi.b $w24, $w20, 19
+ subvi.h $w11, $w19, 4
+ subvi.w $w12, $w10, 11
+ subvi.d $w19, $w16, 7