diff options
author | Jack Carter <jack.carter@imgtec.com> | 2013-09-30 17:58:07 +0000 |
---|---|---|
committer | Jack Carter <jack.carter@imgtec.com> | 2013-09-30 17:58:07 +0000 |
commit | b0247157c6d44363c36cffd0aeea0e2fa83d9335 (patch) | |
tree | a8b7b8c13aba1fcd6f970d25870fc8cfe9eca5df /test/MC/Mips/msa | |
parent | a64fa348df0f5d80109ae244b03142b3c4f9a981 (diff) | |
download | external_llvm-b0247157c6d44363c36cffd0aeea0e2fa83d9335.zip external_llvm-b0247157c6d44363c36cffd0aeea0e2fa83d9335.tar.gz external_llvm-b0247157c6d44363c36cffd0aeea0e2fa83d9335.tar.bz2 |
[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/msa')
-rw-r--r-- | test/MC/Mips/msa/test_i5.s | 138 |
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 0000000..992bfe1 --- /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 |