aboutsummaryrefslogtreecommitdiffstats
path: root/test/MC/Mips
diff options
context:
space:
mode:
authorMatheus Almeida <matheus.almeida@imgtec.com>2013-10-14 13:07:39 +0000
committerMatheus Almeida <matheus.almeida@imgtec.com>2013-10-14 13:07:39 +0000
commit9672a89c71f7b368455ed193bc23566f3bd4ed2b (patch)
tree5526cbbb2d81a61aee01cbcd28cda91043cace2f /test/MC/Mips
parente89c50acc8312c6cd4d3bdbf50e02ba88e54a663 (diff)
downloadexternal_llvm-9672a89c71f7b368455ed193bc23566f3bd4ed2b.zip
external_llvm-9672a89c71f7b368455ed193bc23566f3bd4ed2b.tar.gz
external_llvm-9672a89c71f7b368455ed193bc23566f3bd4ed2b.tar.bz2
[mips][msa] Direct Object Emission support for BIT instructions.
List of instructions: bclri.{b,h,w,d} binsli.{b,h,w,d} binsri.{b,h,w,d} bnegi.{b,h,w,d} bseti.{b,h,w,d} sat_s.{b,h,w,d} sat_u.{b,h,w,d} slli.{b,h,w,d} srai.{b,h,w,d} srari.{b,h,w,d} srli.{b,h,w,d} srlri.{b,h,w,d} git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192589 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/Mips')
-rw-r--r--test/MC/Mips/msa/test_bit.s150
1 files changed, 150 insertions, 0 deletions
diff --git a/test/MC/Mips/msa/test_bit.s b/test/MC/Mips/msa/test_bit.s
new file mode 100644
index 0000000..7c23131
--- /dev/null
+++ b/test/MC/Mips/msa/test_bit.s
@@ -0,0 +1,150 @@
+# 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: bclri.b $w21, $w30, 2 # encoding: [0x79,0xf2,0xf5,0x49]
+# CHECK: bclri.h $w24, $w21, 0 # encoding: [0x79,0xe0,0xae,0x09]
+# CHECK: bclri.w $w23, $w30, 3 # encoding: [0x79,0xc3,0xf5,0xc9]
+# CHECK: bclri.d $w9, $w11, 0 # encoding: [0x79,0x80,0x5a,0x49]
+# CHECK: binsli.b $w25, $w12, 1 # encoding: [0x7b,0x71,0x66,0x49]
+# CHECK: binsli.h $w21, $w22, 0 # encoding: [0x7b,0x60,0xb5,0x49]
+# CHECK: binsli.w $w22, $w4, 0 # encoding: [0x7b,0x40,0x25,0x89]
+# CHECK: binsli.d $w6, $w2, 6 # encoding: [0x7b,0x06,0x11,0x89]
+# CHECK: binsri.b $w15, $w19, 0 # encoding: [0x7b,0xf0,0x9b,0xc9]
+# CHECK: binsri.h $w8, $w30, 1 # encoding: [0x7b,0xe1,0xf2,0x09]
+# CHECK: binsri.w $w2, $w19, 5 # encoding: [0x7b,0xc5,0x98,0x89]
+# CHECK: binsri.d $w18, $w20, 1 # encoding: [0x7b,0x81,0xa4,0x89]
+# CHECK: bnegi.b $w24, $w19, 0 # encoding: [0x7a,0xf0,0x9e,0x09]
+# CHECK: bnegi.h $w28, $w11, 3 # encoding: [0x7a,0xe3,0x5f,0x09]
+# CHECK: bnegi.w $w1, $w27, 5 # encoding: [0x7a,0xc5,0xd8,0x49]
+# CHECK: bnegi.d $w4, $w21, 1 # encoding: [0x7a,0x81,0xa9,0x09]
+# CHECK: bseti.b $w18, $w8, 0 # encoding: [0x7a,0x70,0x44,0x89]
+# CHECK: bseti.h $w24, $w14, 2 # encoding: [0x7a,0x62,0x76,0x09]
+# CHECK: bseti.w $w9, $w18, 4 # encoding: [0x7a,0x44,0x92,0x49]
+# CHECK: bseti.d $w7, $w15, 1 # encoding: [0x7a,0x01,0x79,0xc9]
+# CHECK: sat_s.b $w31, $w31, 2 # encoding: [0x78,0x72,0xff,0xca]
+# CHECK: sat_s.h $w19, $w19, 0 # encoding: [0x78,0x60,0x9c,0xca]
+# CHECK: sat_s.w $w19, $w29, 0 # encoding: [0x78,0x40,0xec,0xca]
+# CHECK: sat_s.d $w11, $w22, 0 # encoding: [0x78,0x00,0xb2,0xca]
+# CHECK: sat_u.b $w1, $w13, 3 # encoding: [0x78,0xf3,0x68,0x4a]
+# CHECK: sat_u.h $w30, $w24, 4 # encoding: [0x78,0xe4,0xc7,0x8a]
+# CHECK: sat_u.w $w31, $w13, 0 # encoding: [0x78,0xc0,0x6f,0xca]
+# CHECK: sat_u.d $w29, $w16, 5 # encoding: [0x78,0x85,0x87,0x4a]
+# CHECK: slli.b $w23, $w10, 1 # encoding: [0x78,0x71,0x55,0xc9]
+# CHECK: slli.h $w9, $w18, 1 # encoding: [0x78,0x61,0x92,0x49]
+# CHECK: slli.w $w11, $w29, 4 # encoding: [0x78,0x44,0xea,0xc9]
+# CHECK: slli.d $w25, $w20, 1 # encoding: [0x78,0x01,0xa6,0x49]
+# CHECK: srai.b $w24, $w29, 1 # encoding: [0x78,0xf1,0xee,0x09]
+# CHECK: srai.h $w1, $w6, 0 # encoding: [0x78,0xe0,0x30,0x49]
+# CHECK: srai.w $w7, $w26, 1 # encoding: [0x78,0xc1,0xd1,0xc9]
+# CHECK: srai.d $w20, $w25, 3 # encoding: [0x78,0x83,0xcd,0x09]
+# CHECK: srari.b $w5, $w25, 0 # encoding: [0x79,0x70,0xc9,0x4a]
+# CHECK: srari.h $w7, $w6, 4 # encoding: [0x79,0x64,0x31,0xca]
+# CHECK: srari.w $w17, $w11, 5 # encoding: [0x79,0x45,0x5c,0x4a]
+# CHECK: srari.d $w21, $w25, 5 # encoding: [0x79,0x05,0xcd,0x4a]
+# CHECK: srli.b $w2, $w0, 2 # encoding: [0x79,0x72,0x00,0x89]
+# CHECK: srli.h $w31, $w31, 2 # encoding: [0x79,0x62,0xff,0xc9]
+# CHECK: srli.w $w5, $w9, 4 # encoding: [0x79,0x44,0x49,0x49]
+# CHECK: srli.d $w27, $w26, 5 # encoding: [0x79,0x05,0xd6,0xc9]
+# CHECK: srlri.b $w18, $w3, 0 # encoding: [0x79,0xf0,0x1c,0x8a]
+# CHECK: srlri.h $w1, $w2, 3 # encoding: [0x79,0xe3,0x10,0x4a]
+# CHECK: srlri.w $w11, $w22, 2 # encoding: [0x79,0xc2,0xb2,0xca]
+# CHECK: srlri.d $w24, $w10, 6 # encoding: [0x79,0x86,0x56,0x0a]
+
+# CHECKOBJDUMP: bclri.b $w21, $w30, 2
+# CHECKOBJDUMP: bclri.h $w24, $w21, 0
+# CHECKOBJDUMP: bclri.w $w23, $w30, 3
+# CHECKOBJDUMP: bclri.d $w9, $w11, 0
+# CHECKOBJDUMP: binsli.b $w25, $w12, 1
+# CHECKOBJDUMP: binsli.h $w21, $w22, 0
+# CHECKOBJDUMP: binsli.w $w22, $w4, 0
+# CHECKOBJDUMP: binsli.d $w6, $w2, 6
+# CHECKOBJDUMP: binsri.b $w15, $w19, 0
+# CHECKOBJDUMP: binsri.h $w8, $w30, 1
+# CHECKOBJDUMP: binsri.w $w2, $w19, 5
+# CHECKOBJDUMP: binsri.d $w18, $w20, 1
+# CHECKOBJDUMP: bnegi.b $w24, $w19, 0
+# CHECKOBJDUMP: bnegi.h $w28, $w11, 3
+# CHECKOBJDUMP: bnegi.w $w1, $w27, 5
+# CHECKOBJDUMP: bnegi.d $w4, $w21, 1
+# CHECKOBJDUMP: bseti.b $w18, $w8, 0
+# CHECKOBJDUMP: bseti.h $w24, $w14, 2
+# CHECKOBJDUMP: bseti.w $w9, $w18, 4
+# CHECKOBJDUMP: bseti.d $w7, $w15, 1
+# CHECKOBJDUMP: sat_s.b $w31, $w31, 2
+# CHECKOBJDUMP: sat_s.h $w19, $w19, 0
+# CHECKOBJDUMP: sat_s.w $w19, $w29, 0
+# CHECKOBJDUMP: sat_s.d $w11, $w22, 0
+# CHECKOBJDUMP: sat_u.b $w1, $w13, 3
+# CHECKOBJDUMP: sat_u.h $w30, $w24, 4
+# CHECKOBJDUMP: sat_u.w $w31, $w13, 0
+# CHECKOBJDUMP: sat_u.d $w29, $w16, 5
+# CHECKOBJDUMP: slli.b $w23, $w10, 1
+# CHECKOBJDUMP: slli.h $w9, $w18, 1
+# CHECKOBJDUMP: slli.w $w11, $w29, 4
+# CHECKOBJDUMP: slli.d $w25, $w20, 1
+# CHECKOBJDUMP: srai.b $w24, $w29, 1
+# CHECKOBJDUMP: srai.h $w1, $w6, 0
+# CHECKOBJDUMP: srai.w $w7, $w26, 1
+# CHECKOBJDUMP: srai.d $w20, $w25, 3
+# CHECKOBJDUMP: srari.b $w5, $w25, 0
+# CHECKOBJDUMP: srari.h $w7, $w6, 4
+# CHECKOBJDUMP: srari.w $w17, $w11, 5
+# CHECKOBJDUMP: srari.d $w21, $w25, 5
+# CHECKOBJDUMP: srli.b $w2, $w0, 2
+# CHECKOBJDUMP: srli.h $w31, $w31, 2
+# CHECKOBJDUMP: srli.w $w5, $w9, 4
+# CHECKOBJDUMP: srli.d $w27, $w26, 5
+# CHECKOBJDUMP: srlri.b $w18, $w3, 0
+# CHECKOBJDUMP: srlri.h $w1, $w2, 3
+# CHECKOBJDUMP: srlri.w $w11, $w22, 2
+# CHECKOBJDUMP: srlri.d $w24, $w10, 6
+
+ bclri.b $w21, $w30, 2
+ bclri.h $w24, $w21, 0
+ bclri.w $w23, $w30, 3
+ bclri.d $w9, $w11, 0
+ binsli.b $w25, $w12, 1
+ binsli.h $w21, $w22, 0
+ binsli.w $w22, $w4, 0
+ binsli.d $w6, $w2, 6
+ binsri.b $w15, $w19, 0
+ binsri.h $w8, $w30, 1
+ binsri.w $w2, $w19, 5
+ binsri.d $w18, $w20, 1
+ bnegi.b $w24, $w19, 0
+ bnegi.h $w28, $w11, 3
+ bnegi.w $w1, $w27, 5
+ bnegi.d $w4, $w21, 1
+ bseti.b $w18, $w8, 0
+ bseti.h $w24, $w14, 2
+ bseti.w $w9, $w18, 4
+ bseti.d $w7, $w15, 1
+ sat_s.b $w31, $w31, 2
+ sat_s.h $w19, $w19, 0
+ sat_s.w $w19, $w29, 0
+ sat_s.d $w11, $w22, 0
+ sat_u.b $w1, $w13, 3
+ sat_u.h $w30, $w24, 4
+ sat_u.w $w31, $w13, 0
+ sat_u.d $w29, $w16, 5
+ slli.b $w23, $w10, 1
+ slli.h $w9, $w18, 1
+ slli.w $w11, $w29, 4
+ slli.d $w25, $w20, 1
+ srai.b $w24, $w29, 1
+ srai.h $w1, $w6, 0
+ srai.w $w7, $w26, 1
+ srai.d $w20, $w25, 3
+ srari.b $w5, $w25, 0
+ srari.h $w7, $w6, 4
+ srari.w $w17, $w11, 5
+ srari.d $w21, $w25, 5
+ srli.b $w2, $w0, 2
+ srli.h $w31, $w31, 2
+ srli.w $w5, $w9, 4
+ srli.d $w27, $w26, 5
+ srlri.b $w18, $w3, 0
+ srlri.h $w1, $w2, 3
+ srlri.w $w11, $w22, 2
+ srlri.d $w24, $w10, 6