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