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: fadd.w $w28, $w19, $w28 # encoding: [0x78,0x1c,0x9f,0x1b] 6# CHECK: fadd.d $w13, $w2, $w29 # encoding: [0x78,0x3d,0x13,0x5b] 7# CHECK: fcaf.w $w14, $w11, $w25 # encoding: [0x78,0x19,0x5b,0x9a] 8# CHECK: fcaf.d $w1, $w1, $w19 # encoding: [0x78,0x33,0x08,0x5a] 9# CHECK: fceq.w $w1, $w23, $w16 # encoding: [0x78,0x90,0xb8,0x5a] 10# CHECK: fceq.d $w0, $w8, $w16 # encoding: [0x78,0xb0,0x40,0x1a] 11# CHECK: fcle.w $w16, $w9, $w24 # encoding: [0x79,0x98,0x4c,0x1a] 12# CHECK: fcle.d $w27, $w14, $w1 # encoding: [0x79,0xa1,0x76,0xda] 13# CHECK: fclt.w $w28, $w8, $w8 # encoding: [0x79,0x08,0x47,0x1a] 14# CHECK: fclt.d $w30, $w25, $w11 # encoding: [0x79,0x2b,0xcf,0x9a] 15# CHECK: fcne.w $w2, $w18, $w23 # encoding: [0x78,0xd7,0x90,0x9c] 16# CHECK: fcne.d $w14, $w20, $w15 # encoding: [0x78,0xef,0xa3,0x9c] 17# CHECK: fcor.w $w10, $w18, $w25 # encoding: [0x78,0x59,0x92,0x9c] 18# CHECK: fcor.d $w17, $w25, $w11 # encoding: [0x78,0x6b,0xcc,0x5c] 19# CHECK: fcueq.w $w14, $w2, $w21 # encoding: [0x78,0xd5,0x13,0x9a] 20# CHECK: fcueq.d $w29, $w3, $w7 # encoding: [0x78,0xe7,0x1f,0x5a] 21# CHECK: fcule.w $w17, $w5, $w3 # encoding: [0x79,0xc3,0x2c,0x5a] 22# CHECK: fcule.d $w31, $w1, $w30 # encoding: [0x79,0xfe,0x0f,0xda] 23# CHECK: fcult.w $w6, $w25, $w9 # encoding: [0x79,0x49,0xc9,0x9a] 24# CHECK: fcult.d $w27, $w8, $w17 # encoding: [0x79,0x71,0x46,0xda] 25# CHECK: fcun.w $w4, $w20, $w8 # encoding: [0x78,0x48,0xa1,0x1a] 26# CHECK: fcun.d $w29, $w11, $w3 # encoding: [0x78,0x63,0x5f,0x5a] 27# CHECK: fcune.w $w13, $w18, $w19 # encoding: [0x78,0x93,0x93,0x5c] 28# CHECK: fcune.d $w16, $w26, $w21 # encoding: [0x78,0xb5,0xd4,0x1c] 29# CHECK: fdiv.w $w13, $w24, $w2 # encoding: [0x78,0xc2,0xc3,0x5b] 30# CHECK: fdiv.d $w19, $w4, $w25 # encoding: [0x78,0xf9,0x24,0xdb] 31# CHECK: fexdo.h $w8, $w0, $w16 # encoding: [0x7a,0x10,0x02,0x1b] 32# CHECK: fexdo.w $w0, $w13, $w27 # encoding: [0x7a,0x3b,0x68,0x1b] 33# CHECK: fexp2.w $w17, $w0, $w3 # encoding: [0x79,0xc3,0x04,0x5b] 34# CHECK: fexp2.d $w22, $w0, $w10 # encoding: [0x79,0xea,0x05,0x9b] 35# CHECK: fmadd.w $w29, $w6, $w23 # encoding: [0x79,0x17,0x37,0x5b] 36# CHECK: fmadd.d $w11, $w28, $w21 # encoding: [0x79,0x35,0xe2,0xdb] 37# CHECK: fmax.w $w0, $w23, $w13 # encoding: [0x7b,0x8d,0xb8,0x1b] 38# CHECK: fmax.d $w26, $w18, $w8 # encoding: [0x7b,0xa8,0x96,0x9b] 39# CHECK: fmax_a.w $w10, $w16, $w10 # encoding: [0x7b,0xca,0x82,0x9b] 40# CHECK: fmax_a.d $w30, $w9, $w22 # encoding: [0x7b,0xf6,0x4f,0x9b] 41# CHECK: fmin.w $w24, $w1, $w30 # encoding: [0x7b,0x1e,0x0e,0x1b] 42# CHECK: fmin.d $w27, $w27, $w10 # encoding: [0x7b,0x2a,0xde,0xdb] 43# CHECK: fmin_a.w $w10, $w29, $w20 # encoding: [0x7b,0x54,0xea,0x9b] 44# CHECK: fmin_a.d $w13, $w30, $w24 # encoding: [0x7b,0x78,0xf3,0x5b] 45# CHECK: fmsub.w $w17, $w25, $w0 # encoding: [0x79,0x40,0xcc,0x5b] 46# CHECK: fmsub.d $w8, $w18, $w16 # encoding: [0x79,0x70,0x92,0x1b] 47# CHECK: fmul.w $w3, $w15, $w15 # encoding: [0x78,0x8f,0x78,0xdb] 48# CHECK: fmul.d $w9, $w30, $w10 # encoding: [0x78,0xaa,0xf2,0x5b] 49# CHECK: fsaf.w $w25, $w5, $w10 # encoding: [0x7a,0x0a,0x2e,0x5a] 50# CHECK: fsaf.d $w25, $w3, $w29 # encoding: [0x7a,0x3d,0x1e,0x5a] 51# CHECK: fseq.w $w11, $w17, $w13 # encoding: [0x7a,0x8d,0x8a,0xda] 52# CHECK: fseq.d $w29, $w0, $w31 # encoding: [0x7a,0xbf,0x07,0x5a] 53# CHECK: fsle.w $w30, $w31, $w31 # encoding: [0x7b,0x9f,0xff,0x9a] 54# CHECK: fsle.d $w18, $w23, $w24 # encoding: [0x7b,0xb8,0xbc,0x9a] 55# CHECK: fslt.w $w12, $w5, $w6 # encoding: [0x7b,0x06,0x2b,0x1a] 56# CHECK: fslt.d $w16, $w26, $w21 # encoding: [0x7b,0x35,0xd4,0x1a] 57# CHECK: fsne.w $w30, $w1, $w12 # encoding: [0x7a,0xcc,0x0f,0x9c] 58# CHECK: fsne.d $w14, $w13, $w23 # encoding: [0x7a,0xf7,0x6b,0x9c] 59# CHECK: fsor.w $w27, $w13, $w27 # encoding: [0x7a,0x5b,0x6e,0xdc] 60# CHECK: fsor.d $w12, $w24, $w11 # encoding: [0x7a,0x6b,0xc3,0x1c] 61# CHECK: fsub.w $w31, $w26, $w1 # encoding: [0x78,0x41,0xd7,0xdb] 62# CHECK: fsub.d $w19, $w17, $w27 # encoding: [0x78,0x7b,0x8c,0xdb] 63# CHECK: fsueq.w $w16, $w24, $w25 # encoding: [0x7a,0xd9,0xc4,0x1a] 64# CHECK: fsueq.d $w18, $w14, $w14 # encoding: [0x7a,0xee,0x74,0x9a] 65# CHECK: fsule.w $w23, $w30, $w13 # encoding: [0x7b,0xcd,0xf5,0xda] 66# CHECK: fsule.d $w2, $w11, $w26 # encoding: [0x7b,0xfa,0x58,0x9a] 67# CHECK: fsult.w $w11, $w26, $w22 # encoding: [0x7b,0x56,0xd2,0xda] 68# CHECK: fsult.d $w6, $w23, $w30 # encoding: [0x7b,0x7e,0xb9,0x9a] 69# CHECK: fsun.w $w3, $w18, $w28 # encoding: [0x7a,0x5c,0x90,0xda] 70# CHECK: fsun.d $w18, $w11, $w19 # encoding: [0x7a,0x73,0x5c,0x9a] 71# CHECK: fsune.w $w16, $w31, $w2 # encoding: [0x7a,0x82,0xfc,0x1c] 72# CHECK: fsune.d $w3, $w26, $w17 # encoding: [0x7a,0xb1,0xd0,0xdc] 73# CHECK: ftq.h $w16, $w4, $w24 # encoding: [0x7a,0x98,0x24,0x1b] 74# CHECK: ftq.w $w5, $w5, $w25 # encoding: [0x7a,0xb9,0x29,0x5b] 75# CHECK: madd_q.h $w16, $w20, $w10 # encoding: [0x79,0x4a,0xa4,0x1c] 76# CHECK: madd_q.w $w28, $w2, $w9 # encoding: [0x79,0x69,0x17,0x1c] 77# CHECK: maddr_q.h $w8, $w18, $w9 # encoding: [0x7b,0x49,0x92,0x1c] 78# CHECK: maddr_q.w $w29, $w12, $w16 # encoding: [0x7b,0x70,0x67,0x5c] 79# CHECK: msub_q.h $w24, $w26, $w10 # encoding: [0x79,0x8a,0xd6,0x1c] 80# CHECK: msub_q.w $w13, $w30, $w28 # encoding: [0x79,0xbc,0xf3,0x5c] 81# CHECK: msubr_q.h $w12, $w21, $w11 # encoding: [0x7b,0x8b,0xab,0x1c] 82# CHECK: msubr_q.w $w1, $w14, $w20 # encoding: [0x7b,0xb4,0x70,0x5c] 83# CHECK: mul_q.h $w6, $w16, $w30 # encoding: [0x79,0x1e,0x81,0x9c] 84# CHECK: mul_q.w $w16, $w1, $w4 # encoding: [0x79,0x24,0x0c,0x1c] 85# CHECK: mulr_q.h $w6, $w20, $w19 # encoding: [0x7b,0x13,0xa1,0x9c] 86# CHECK: mulr_q.w $w27, $w1, $w20 # encoding: [0x7b,0x34,0x0e,0xdc] 87 88# CHECKOBJDUMP: fadd.w $w28, $w19, $w28 89# CHECKOBJDUMP: fadd.d $w13, $w2, $w29 90# CHECKOBJDUMP: fcaf.w $w14, $w11, $w25 91# CHECKOBJDUMP: fcaf.d $w1, $w1, $w19 92# CHECKOBJDUMP: fceq.w $w1, $w23, $w16 93# CHECKOBJDUMP: fceq.d $w0, $w8, $w16 94# CHECKOBJDUMP: fcle.w $w16, $w9, $w24 95# CHECKOBJDUMP: fcle.d $w27, $w14, $w1 96# CHECKOBJDUMP: fclt.w $w28, $w8, $w8 97# CHECKOBJDUMP: fclt.d $w30, $w25, $w11 98# CHECKOBJDUMP: fcne.w $w2, $w18, $w23 99# CHECKOBJDUMP: fcne.d $w14, $w20, $w15 100# CHECKOBJDUMP: fcor.w $w10, $w18, $w25 101# CHECKOBJDUMP: fcor.d $w17, $w25, $w11 102# CHECKOBJDUMP: fcueq.w $w14, $w2, $w21 103# CHECKOBJDUMP: fcueq.d $w29, $w3, $w7 104# CHECKOBJDUMP: fcule.w $w17, $w5, $w3 105# CHECKOBJDUMP: fcule.d $w31, $w1, $w30 106# CHECKOBJDUMP: fcult.w $w6, $w25, $w9 107# CHECKOBJDUMP: fcult.d $w27, $w8, $w17 108# CHECKOBJDUMP: fcun.w $w4, $w20, $w8 109# CHECKOBJDUMP: fcun.d $w29, $w11, $w3 110# CHECKOBJDUMP: fcune.w $w13, $w18, $w19 111# CHECKOBJDUMP: fcune.d $w16, $w26, $w21 112# CHECKOBJDUMP: fdiv.w $w13, $w24, $w2 113# CHECKOBJDUMP: fdiv.d $w19, $w4, $w25 114# CHECKOBJDUMP: fexdo.h $w8, $w0, $w16 115# CHECKOBJDUMP: fexdo.w $w0, $w13, $w27 116# CHECKOBJDUMP: fexp2.w $w17, $w0, $w3 117# CHECKOBJDUMP: fexp2.d $w22, $w0, $w10 118# CHECKOBJDUMP: fmadd.w $w29, $w6, $w23 119# CHECKOBJDUMP: fmadd.d $w11, $w28, $w21 120# CHECKOBJDUMP: fmax.w $w0, $w23, $w13 121# CHECKOBJDUMP: fmax.d $w26, $w18, $w8 122# CHECKOBJDUMP: fmax_a.w $w10, $w16, $w10 123# CHECKOBJDUMP: fmax_a.d $w30, $w9, $w22 124# CHECKOBJDUMP: fmin.w $w24, $w1, $w30 125# CHECKOBJDUMP: fmin.d $w27, $w27, $w10 126# CHECKOBJDUMP: fmin_a.w $w10, $w29, $w20 127# CHECKOBJDUMP: fmin_a.d $w13, $w30, $w24 128# CHECKOBJDUMP: fmsub.w $w17, $w25, $w0 129# CHECKOBJDUMP: fmsub.d $w8, $w18, $w16 130# CHECKOBJDUMP: fmul.w $w3, $w15, $w15 131# CHECKOBJDUMP: fmul.d $w9, $w30, $w10 132# CHECKOBJDUMP: fsaf.w $w25, $w5, $w10 133# CHECKOBJDUMP: fsaf.d $w25, $w3, $w29 134# CHECKOBJDUMP: fseq.w $w11, $w17, $w13 135# CHECKOBJDUMP: fseq.d $w29, $w0, $w31 136# CHECKOBJDUMP: fsle.w $w30, $w31, $w31 137# CHECKOBJDUMP: fsle.d $w18, $w23, $w24 138# CHECKOBJDUMP: fslt.w $w12, $w5, $w6 139# CHECKOBJDUMP: fslt.d $w16, $w26, $w21 140# CHECKOBJDUMP: fsne.w $w30, $w1, $w12 141# CHECKOBJDUMP: fsne.d $w14, $w13, $w23 142# CHECKOBJDUMP: fsor.w $w27, $w13, $w27 143# CHECKOBJDUMP: fsor.d $w12, $w24, $w11 144# CHECKOBJDUMP: fsub.w $w31, $w26, $w1 145# CHECKOBJDUMP: fsub.d $w19, $w17, $w27 146# CHECKOBJDUMP: fsueq.w $w16, $w24, $w25 147# CHECKOBJDUMP: fsueq.d $w18, $w14, $w14 148# CHECKOBJDUMP: fsule.w $w23, $w30, $w13 149# CHECKOBJDUMP: fsule.d $w2, $w11, $w26 150# CHECKOBJDUMP: fsult.w $w11, $w26, $w22 151# CHECKOBJDUMP: fsult.d $w6, $w23, $w30 152# CHECKOBJDUMP: fsun.w $w3, $w18, $w28 153# CHECKOBJDUMP: fsun.d $w18, $w11, $w19 154# CHECKOBJDUMP: fsune.w $w16, $w31, $w2 155# CHECKOBJDUMP: fsune.d $w3, $w26, $w17 156# CHECKOBJDUMP: ftq.h $w16, $w4, $w24 157# CHECKOBJDUMP: ftq.w $w5, $w5, $w25 158# CHECKOBJDUMP: madd_q.h $w16, $w20, $w10 159# CHECKOBJDUMP: madd_q.w $w28, $w2, $w9 160# CHECKOBJDUMP: maddr_q.h $w8, $w18, $w9 161# CHECKOBJDUMP: maddr_q.w $w29, $w12, $w16 162# CHECKOBJDUMP: msub_q.h $w24, $w26, $w10 163# CHECKOBJDUMP: msub_q.w $w13, $w30, $w28 164# CHECKOBJDUMP: msubr_q.h $w12, $w21, $w11 165# CHECKOBJDUMP: msubr_q.w $w1, $w14, $w20 166# CHECKOBJDUMP: mul_q.h $w6, $w16, $w30 167# CHECKOBJDUMP: mul_q.w $w16, $w1, $w4 168# CHECKOBJDUMP: mulr_q.h $w6, $w20, $w19 169# CHECKOBJDUMP: mulr_q.w $w27, $w1, $w20 170 171 fadd.w $w28, $w19, $w28 172 fadd.d $w13, $w2, $w29 173 fcaf.w $w14, $w11, $w25 174 fcaf.d $w1, $w1, $w19 175 fceq.w $w1, $w23, $w16 176 fceq.d $w0, $w8, $w16 177 fcle.w $w16, $w9, $w24 178 fcle.d $w27, $w14, $w1 179 fclt.w $w28, $w8, $w8 180 fclt.d $w30, $w25, $w11 181 fcne.w $w2, $w18, $w23 182 fcne.d $w14, $w20, $w15 183 fcor.w $w10, $w18, $w25 184 fcor.d $w17, $w25, $w11 185 fcueq.w $w14, $w2, $w21 186 fcueq.d $w29, $w3, $w7 187 fcule.w $w17, $w5, $w3 188 fcule.d $w31, $w1, $w30 189 fcult.w $w6, $w25, $w9 190 fcult.d $w27, $w8, $w17 191 fcun.w $w4, $w20, $w8 192 fcun.d $w29, $w11, $w3 193 fcune.w $w13, $w18, $w19 194 fcune.d $w16, $w26, $w21 195 fdiv.w $w13, $w24, $w2 196 fdiv.d $w19, $w4, $w25 197 fexdo.h $w8, $w0, $w16 198 fexdo.w $w0, $w13, $w27 199 fexp2.w $w17, $w0, $w3 200 fexp2.d $w22, $w0, $w10 201 fmadd.w $w29, $w6, $w23 202 fmadd.d $w11, $w28, $w21 203 fmax.w $w0, $w23, $w13 204 fmax.d $w26, $w18, $w8 205 fmax_a.w $w10, $w16, $w10 206 fmax_a.d $w30, $w9, $w22 207 fmin.w $w24, $w1, $w30 208 fmin.d $w27, $w27, $w10 209 fmin_a.w $w10, $w29, $w20 210 fmin_a.d $w13, $w30, $w24 211 fmsub.w $w17, $w25, $w0 212 fmsub.d $w8, $w18, $w16 213 fmul.w $w3, $w15, $w15 214 fmul.d $w9, $w30, $w10 215 fsaf.w $w25, $w5, $w10 216 fsaf.d $w25, $w3, $w29 217 fseq.w $w11, $w17, $w13 218 fseq.d $w29, $w0, $w31 219 fsle.w $w30, $w31, $w31 220 fsle.d $w18, $w23, $w24 221 fslt.w $w12, $w5, $w6 222 fslt.d $w16, $w26, $w21 223 fsne.w $w30, $w1, $w12 224 fsne.d $w14, $w13, $w23 225 fsor.w $w27, $w13, $w27 226 fsor.d $w12, $w24, $w11 227 fsub.w $w31, $w26, $w1 228 fsub.d $w19, $w17, $w27 229 fsueq.w $w16, $w24, $w25 230 fsueq.d $w18, $w14, $w14 231 fsule.w $w23, $w30, $w13 232 fsule.d $w2, $w11, $w26 233 fsult.w $w11, $w26, $w22 234 fsult.d $w6, $w23, $w30 235 fsun.w $w3, $w18, $w28 236 fsun.d $w18, $w11, $w19 237 fsune.w $w16, $w31, $w2 238 fsune.d $w3, $w26, $w17 239 ftq.h $w16, $w4, $w24 240 ftq.w $w5, $w5, $w25 241 madd_q.h $w16, $w20, $w10 242 madd_q.w $w28, $w2, $w9 243 maddr_q.h $w8, $w18, $w9 244 maddr_q.w $w29, $w12, $w16 245 msub_q.h $w24, $w26, $w10 246 msub_q.w $w13, $w30, $w28 247 msubr_q.h $w12, $w21, $w11 248 msubr_q.w $w1, $w14, $w20 249 mul_q.h $w6, $w16, $w30 250 mul_q.w $w16, $w1, $w4 251 mulr_q.h $w6, $w20, $w19 252 mulr_q.w $w27, $w1, $w20 253