1 # RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 -mattr=+msa -show-encoding | FileCheck %s
3 # RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 -mattr=+msa -filetype=obj -o - | \
4 # RUN: llvm-objdump -d -arch=mips -mattr=+msa - | \
5 # RUN: FileCheck %s -check-prefix=CHECKOBJDUMP
7 # CHECK: fclass.w $w26, $w12 # encoding: [0x7b,0x20,0x66,0x9e]
8 # CHECK: fclass.d $w24, $w17 # encoding: [0x7b,0x21,0x8e,0x1e]
9 # CHECK: fexupl.w $w8, $w0 # encoding: [0x7b,0x30,0x02,0x1e]
10 # CHECK: fexupl.d $w17, $w29 # encoding: [0x7b,0x31,0xec,0x5e]
11 # CHECK: fexupr.w $w13, $w4 # encoding: [0x7b,0x32,0x23,0x5e]
12 # CHECK: fexupr.d $w5, $w2 # encoding: [0x7b,0x33,0x11,0x5e]
13 # CHECK: ffint_s.w $w20, $w29 # encoding: [0x7b,0x3c,0xed,0x1e]
14 # CHECK: ffint_s.d $w12, $w15 # encoding: [0x7b,0x3d,0x7b,0x1e]
15 # CHECK: ffint_u.w $w7, $w27 # encoding: [0x7b,0x3e,0xd9,0xde]
16 # CHECK: ffint_u.d $w19, $w16 # encoding: [0x7b,0x3f,0x84,0xde]
17 # CHECK: ffql.w $w31, $w13 # encoding: [0x7b,0x34,0x6f,0xde]
18 # CHECK: ffql.d $w12, $w13 # encoding: [0x7b,0x35,0x6b,0x1e]
19 # CHECK: ffqr.w $w27, $w30 # encoding: [0x7b,0x36,0xf6,0xde]
20 # CHECK: ffqr.d $w30, $w15 # encoding: [0x7b,0x37,0x7f,0x9e]
21 # CHECK: flog2.w $w25, $w31 # encoding: [0x7b,0x2e,0xfe,0x5e]
22 # CHECK: flog2.d $w18, $w10 # encoding: [0x7b,0x2f,0x54,0x9e]
23 # CHECK: frint.w $w7, $w15 # encoding: [0x7b,0x2c,0x79,0xde]
24 # CHECK: frint.d $w21, $w22 # encoding: [0x7b,0x2d,0xb5,0x5e]
25 # CHECK: frcp.w $w19, $w0 # encoding: [0x7b,0x2a,0x04,0xde]
26 # CHECK: frcp.d $w4, $w14 # encoding: [0x7b,0x2b,0x71,0x1e]
27 # CHECK: frsqrt.w $w12, $w17 # encoding: [0x7b,0x28,0x8b,0x1e]
28 # CHECK: frsqrt.d $w23, $w11 # encoding: [0x7b,0x29,0x5d,0xde]
29 # CHECK: fsqrt.w $w0, $w11 # encoding: [0x7b,0x26,0x58,0x1e]
30 # CHECK: fsqrt.d $w15, $w12 # encoding: [0x7b,0x27,0x63,0xde]
31 # CHECK: ftint_s.w $w30, $w5 # encoding: [0x7b,0x38,0x2f,0x9e]
32 # CHECK: ftint_s.d $w5, $w23 # encoding: [0x7b,0x39,0xb9,0x5e]
33 # CHECK: ftint_u.w $w20, $w14 # encoding: [0x7b,0x3a,0x75,0x1e]
34 # CHECK: ftint_u.d $w23, $w21 # encoding: [0x7b,0x3b,0xad,0xde]
35 # CHECK: ftrunc_s.w $w29, $w17 # encoding: [0x7b,0x22,0x8f,0x5e]
36 # CHECK: ftrunc_s.d $w12, $w27 # encoding: [0x7b,0x23,0xdb,0x1e]
37 # CHECK: ftrunc_u.w $w17, $w15 # encoding: [0x7b,0x24,0x7c,0x5e]
38 # CHECK: ftrunc_u.d $w5, $w27 # encoding: [0x7b,0x25,0xd9,0x5e]
40 # CHECKOBJDUMP: fclass.w $w26, $w12
41 # CHECKOBJDUMP: fclass.d $w24, $w17
42 # CHECKOBJDUMP: fexupl.w $w8, $w0
43 # CHECKOBJDUMP: fexupl.d $w17, $w29
44 # CHECKOBJDUMP: fexupr.w $w13, $w4
45 # CHECKOBJDUMP: fexupr.d $w5, $w2
46 # CHECKOBJDUMP: ffint_s.w $w20, $w29
47 # CHECKOBJDUMP: ffint_s.d $w12, $w15
48 # CHECKOBJDUMP: ffint_u.w $w7, $w27
49 # CHECKOBJDUMP: ffint_u.d $w19, $w16
50 # CHECKOBJDUMP: ffql.w $w31, $w13
51 # CHECKOBJDUMP: ffql.d $w12, $w13
52 # CHECKOBJDUMP: ffqr.w $w27, $w30
53 # CHECKOBJDUMP: ffqr.d $w30, $w15
54 # CHECKOBJDUMP: flog2.w $w25, $w31
55 # CHECKOBJDUMP: flog2.d $w18, $w10
56 # CHECKOBJDUMP: frint.w $w7, $w15
57 # CHECKOBJDUMP: frint.d $w21, $w22
58 # CHECKOBJDUMP: frcp.w $w19, $w0
59 # CHECKOBJDUMP: frcp.d $w4, $w14
60 # CHECKOBJDUMP: frsqrt.w $w12, $w17
61 # CHECKOBJDUMP: frsqrt.d $w23, $w11
62 # CHECKOBJDUMP: fsqrt.w $w0, $w11
63 # CHECKOBJDUMP: fsqrt.d $w15, $w12
64 # CHECKOBJDUMP: ftint_s.w $w30, $w5
65 # CHECKOBJDUMP: ftint_s.d $w5, $w23
66 # CHECKOBJDUMP: ftint_u.w $w20, $w14
67 # CHECKOBJDUMP: ftint_u.d $w23, $w21
68 # CHECKOBJDUMP: ftrunc_s.w $w29, $w17
69 # CHECKOBJDUMP: ftrunc_s.d $w12, $w27
70 # CHECKOBJDUMP: ftrunc_u.w $w17, $w15
71 # CHECKOBJDUMP: ftrunc_u.d $w5, $w27
101 ftrunc_s.w $w29, $w17
102 ftrunc_s.d $w12, $w27
103 ftrunc_u.w $w17, $w15