1# RUN: not llvm-mc -triple=thumbv8.1m.main-none-eabi -mattr=+mve -show-encoding < %s \ 2# RUN: | FileCheck --check-prefix=CHECK-NOFP %s 3# RUN: not llvm-mc -triple=thumbv8.1m.main-none-eabi -mattr=+mve.fp,+fp64 -show-encoding < %s 2>%t \ 4# RUN: | FileCheck --check-prefix=CHECK %s 5# RUN: FileCheck --check-prefix=ERROR < %t %s 6 7# CHECK: vrintn.f16 q1, q0 @ encoding: [0xb6,0xff,0x40,0x24] 8# CHECK-NOFP-NOT: vrintn.f16 q1, q0 @ encoding: [0xb6,0xff,0x40,0x24] 9vrintn.f16 q1, q0 10 11# CHECK: vrintn.f32 q0, q4 @ encoding: [0xba,0xff,0x48,0x04] 12# CHECK-NOFP-NOT: vrintn.f32 q0, q4 @ encoding: [0xba,0xff,0x48,0x04] 13vrintn.f32 q0, q4 14 15# CHECK: vrinta.f16 q0, q1 @ encoding: [0xb6,0xff,0x42,0x05] 16# CHECK-NOFP-NOT: vrinta.f16 q0, q1 @ encoding: [0xb6,0xff,0x42,0x05] 17vrinta.f16 q0, q1 18 19# CHECK: vrinta.f32 q1, q3 @ encoding: [0xba,0xff,0x46,0x25] 20# CHECK-NOFP-NOT: vrinta.f32 q1, q3 @ encoding: [0xba,0xff,0x46,0x25] 21vrinta.f32 q1, q3 22 23# CHECK: vrintm.f16 q0, q5 @ encoding: [0xb6,0xff,0xca,0x06] 24# CHECK-NOFP-NOT: vrintm.f16 q0, q5 @ encoding: [0xb6,0xff,0xca,0x06] 25vrintm.f16 q0, q5 26 27# CHECK: vrintm.f32 q0, q4 @ encoding: [0xba,0xff,0xc8,0x06] 28# CHECK-NOFP-NOT: vrintm.f32 q0, q4 @ encoding: [0xba,0xff,0xc8,0x06] 29vrintm.f32 q0, q4 30 31# CHECK: vrintp.f16 q1, q0 @ encoding: [0xb6,0xff,0xc0,0x27] 32# CHECK-NOFP-NOT: vrintp.f16 q1, q0 @ encoding: [0xb6,0xff,0xc0,0x27] 33vrintp.f16 q1, q0 34 35# CHECK: vrintp.f32 q0, q1 @ encoding: [0xba,0xff,0xc2,0x07] 36# CHECK-NOFP-NOT: vrintp.f32 q0, q1 @ encoding: [0xba,0xff,0xc2,0x07] 37vrintp.f32 q0, q1 38 39# CHECK: vrintx.f16 q1, q2 @ encoding: [0xb6,0xff,0xc4,0x24] 40# CHECK-NOFP-NOT: vrintx.f16 q1, q2 @ encoding: [0xb6,0xff,0xc4,0x24] 41vrintx.f16 q1, q2 42 43# CHECK: vrintx.f32 q1, q1 @ encoding: [0xba,0xff,0xc2,0x24] 44# CHECK-NOFP-NOT: vrintx.f32 q1, q1 @ encoding: [0xba,0xff,0xc2,0x24] 45vrintx.f32 q1, q1 46 47# CHECK: vrintz.f16 q1, q6 @ encoding: [0xb6,0xff,0xcc,0x25] 48# CHECK-NOFP-NOT: vrintz.f16 q1, q6 @ encoding: [0xb6,0xff,0xcc,0x25] 49vrintz.f16 q1, q6 50 51# CHECK: vrintz.f32 q1, q0 @ encoding: [0xba,0xff,0xc0,0x25] 52# CHECK-NOFP-NOT: vrintz.f32 q1, q0 @ encoding: [0xba,0xff,0xc0,0x25] 53vrintz.f32 q1, q0 54 55# CHECK: vrintr.f32 s0, s1 @ encoding: [0xb6,0xee,0x60,0x0a] 56# CHECK-NOFP-NOT: vrintr.f32 s0, s1 @ encoding: [0xb6,0xee,0x60,0x0a] 57vrintr.f32.f32 s0, s1 58 59# CHECK: vrintr.f64 d0, d1 @ encoding: [0xb6,0xee,0x41,0x0b] 60# CHECK-NOFP-NOT: vrintr.f64 d0, d1 @ encoding: [0xb6,0xee,0x41,0x0b] 61vrintr.f64.f64 d0, d1 62 63# ERROR: [[@LINE+1]]:{{[0-9]+}}: {{error|note}}: invalid instruction 64vrintr.f32.f32 q0, q1 65 66# ERROR: [[@LINE+1]]:{{[0-9]+}}: {{error|note}}: invalid instruction 67vrintr.f64 q0, q1 68 69# CHECK: vmul.f16 q2, q1, q3 @ encoding: [0x12,0xff,0x56,0x4d] 70# CHECK-NOFP-NOT: vmul.f16 q2, q1, q3 @ encoding: [0x12,0xff,0x56,0x4d] 71vmul.f16 q2, q1, q3 72 73# CHECK: vmul.f32 q0, q0, q5 @ encoding: [0x00,0xff,0x5a,0x0d] 74# CHECK-NOFP-NOT: vmul.f32 q0, q0, q5 @ encoding: [0x00,0xff,0x5a,0x0d] 75vmul.f32 q0, q0, q5 76 77# CHECK: vcmla.f16 q3, q2, q1, #0 @ encoding: [0x24,0xfc,0x42,0x68] 78# CHECK-NOFP-NOT: vcmla.f16 q3, q2, q1, #0 @ encoding: [0x24,0xfc,0x42,0x68] 79vcmla.f16 q3, q2, q1, #0 80 81# CHECK: vcmla.f16 q0, q0, q5, #90 @ encoding: [0xa0,0xfc,0x4a,0x08] 82# CHECK-NOFP-NOT: vcmla.f16 q0, q0, q5, #90 @ encoding: [0xa0,0xfc,0x4a,0x08] 83vcmla.f16 q0, q0, q5, #90 84 85# CHECK: vcmla.f16 q3, q7, q2, #180 @ encoding: [0x2e,0xfd,0x44,0x68] 86# CHECK-NOFP-NOT: vcmla.f16 q3, q7, q2, #180 @ encoding: [0x2e,0xfd,0x44,0x68] 87vcmla.f16 q3, q7, q2, #180 88 89# CHECK: vcmla.f16 q2, q7, q6, #270 @ encoding: [0xae,0xfd,0x4c,0x48] 90# CHECK-NOFP-NOT: vcmla.f16 q2, q7, q6, #270 @ encoding: [0xae,0xfd,0x4c,0x48] 91vcmla.f16 q2, q7, q6, #270 92 93# ERROR: [[@LINE+1]]:{{[0-9]+}}: {{error|note}}: complex rotation must be 0, 90, 180 or 270 94vcmla.f16 q3, q2, q1, #200 95 96# CHECK: vcmla.f32 q2, q6, q6, #0 @ encoding: [0x3c,0xfc,0x4c,0x48] 97# CHECK-NOFP-NOT: vcmla.f32 q2, q6, q6, #0 @ encoding: [0x3c,0xfc,0x4c,0x48] 98vcmla.f32 q2, q6, q6, #0 99 100# CHECK: vcmla.f32 q7, q1, q3, #90 @ encoding: [0xb2,0xfc,0x46,0xe8] 101# CHECK-NOFP-NOT: vcmla.f32 q7, q1, q3, #90 @ encoding: [0xb2,0xfc,0x46,0xe8] 102vcmla.f32 q7, q1, q3, #90 103 104# CHECK: vcmla.f32 q4, q5, q3, #180 @ encoding: [0x3a,0xfd,0x46,0x88] 105# CHECK-NOFP-NOT: vcmla.f32 q4, q5, q3, #180 @ encoding: [0x3a,0xfd,0x46,0x88] 106vcmla.f32 q4, q5, q3, #180 107 108# CHECK: vcmla.f32 q3, q2, q7, #270 @ encoding: [0xb4,0xfd,0x4e,0x68] 109# CHECK-NOFP-NOT: vcmla.f32 q3, q2, q7, #270 @ encoding: [0xb4,0xfd,0x4e,0x68] 110vcmla.f32 q3, q2, q7, #270 111 112# ERROR: [[@LINE+1]]:{{[0-9]+}}: {{error|note}}: complex rotation must be 0, 90, 180 or 270 113vcmla.f32 q3, q2, q1, #16 114 115# CHECK: vfma.f16 q0, q2, q3 @ encoding: [0x14,0xef,0x56,0x0c] 116# CHECK-NOFP-NOT: vfma.f16 q0, q2, q3 @ encoding: [0x14,0xef,0x56,0x0c] 117vfma.f16 q0, q2, q3 118 119# CHECK: vfma.f32 q0, q3, q7 @ encoding: [0x06,0xef,0x5e,0x0c] 120# CHECK-NOFP-NOT: vfma.f32 q0, q3, q7 @ encoding: [0x06,0xef,0x5e,0x0c] 121vfma.f32 q0, q3, q7 122 123# CHECK: vfms.f16 q0, q2, q5 @ encoding: [0x34,0xef,0x5a,0x0c] 124# CHECK-NOFP-NOT: vfms.f16 q0, q2, q5 @ encoding: [0x34,0xef,0x5a,0x0c] 125vfms.f16 q0, q2, q5 126 127# CHECK: vfms.f32 q1, q1, q2 @ encoding: [0x22,0xef,0x54,0x2c] 128# CHECK-NOFP-NOT: vfms.f32 q1, q1, q2 @ encoding: [0x22,0xef,0x54,0x2c] 129vfms.f32 q1, q1, q2 130 131# CHECK: vadd.f16 q0, q0, q5 @ encoding: [0x10,0xef,0x4a,0x0d] 132# CHECK-NOFP-NOT: vadd.f16 q0, q0, q5 @ encoding: [0x10,0xef,0x4a,0x0d] 133vadd.f16 q0, q0, q5 134 135# CHECK: vadd.f32 q1, q3, q0 @ encoding: [0x06,0xef,0x40,0x2d] 136# CHECK-NOFP-NOT: vadd.f32 q1, q3, q0 @ encoding: [0x06,0xef,0x40,0x2d] 137vadd.f32 q1, q3, q0 138 139# ERROR: [[@LINE+1]]:{{[0-9]+}}: {{error|note}}: invalid instruction 140vaddeq.f32 q0, q1, q2 141 142# CHECK: vadd.f32 q0, q1, q2 @ encoding: [0x02,0xef,0x44,0x0d] 143# CHECK-NOFP-NOT: vadd.f32 q0, q1, q2 @ encoding: [0x02,0xef,0x44,0x0d] 144vadd.f32 q0, q1, q2 145 146# CHECK: vcadd.f16 q2, q1, q7, #90 @ encoding: [0x82,0xfc,0x4e,0x48] 147# CHECK-NOFP-NOT: vcadd.f16 q2, q1, q7, #90 @ encoding: [0x82,0xfc,0x4e,0x48] 148vcadd.f16 q2, q1, q7, #90 149 150# CHECK: vcadd.f16 q2, q5, q7, #270 @ encoding: [0x8a,0xfd,0x4e,0x48] 151# CHECK-NOFP-NOT: vcadd.f16 q2, q5, q7, #270 @ encoding: [0x8a,0xfd,0x4e,0x48] 152vcadd.f16 q2, q5, q7, #270 153 154# ERROR: [[@LINE+1]]:{{[0-9]+}}: {{error|note}}: complex rotation must be 90 or 270 155vcadd.f16 q2, q5, q7, #180 156 157# CHECK: vcadd.f32 q0, q4, q7, #90 @ encoding: [0x98,0xfc,0x4e,0x08] 158# CHECK-NOFP-NOT: vcadd.f32 q0, q4, q7, #90 @ encoding: [0x98,0xfc,0x4e,0x08] 159vcadd.f32 q0, q4, q7, #90 160 161# CHECK: vcadd.f32 q2, q2, q3, #270 @ encoding: [0x94,0xfd,0x46,0x48] 162# CHECK-NOFP-NOT: vcadd.f32 q2, q2, q3, #270 @ encoding: [0x94,0xfd,0x46,0x48] 163vcadd.f32 q2, q2, q3, #270 164 165# ERROR: [[@LINE+1]]:{{[0-9]+}}: {{error|note}}: complex rotation must be 90 or 270 166vcadd.f32 q2, q5, q7, #0 167 168# CHECK: vabd.f16 q0, q0, q6 @ encoding: [0x30,0xff,0x4c,0x0d] 169# CHECK-NOFP-NOT: vabd.f16 q0, q0, q6 @ encoding: [0x30,0xff,0x4c,0x0d] 170vabd.f16 q0, q0, q6 171 172# CHECK: vabd.f32 q0, q1, q4 @ encoding: [0x22,0xff,0x48,0x0d] 173# CHECK-NOFP-NOT: vabd.f32 q0, q1, q4 @ encoding: [0x22,0xff,0x48,0x0d] 174vabd.f32 q0, q1, q4 175 176# CHECK: vcvt.f16.s16 q1, q7, #1 @ encoding: [0xbf,0xef,0x5e,0x2c] 177# CHECK-NOFP-NOT: vcvt.f16.s16 q1, q7, #1 @ encoding: [0xbf,0xef,0x5e,0x2c] 178vcvt.f16.s16 q1, q7, #1 179 180# CHECK: vcvt.f16.s16 q1, q7, #16 @ encoding: [0xb0,0xef,0x5e,0x2c] 181# CHECK-NOFP-NOT: vcvt.f16.s16 q1, q7, #16 @ encoding: [0xb0,0xef,0x5e,0x2c] 182vcvt.f16.s16 q1, q7, #16 183 184# CHECK: vcvt.f16.s16 q1, q7, #11 @ encoding: [0xb5,0xef,0x5e,0x2c] 185# CHECK-NOFP-NOT: vcvt.f16.s16 q1, q7, #11 @ encoding: [0xb5,0xef,0x5e,0x2c] 186vcvt.f16.s16 q1, q7, #11 187 188# CHECK: vcvt.s16.f16 q1, q1, #3 @ encoding: [0xbd,0xef,0x52,0x2d] 189# CHECK-NOFP-NOT: vcvt.s16.f16 q1, q1, #3 @ encoding: [0xbd,0xef,0x52,0x2d] 190vcvt.s16.f16 q1, q1, #3 191 192# CHECK: vcvt.f16.u16 q2, q1, #10 @ encoding: [0xb6,0xff,0x52,0x4c] 193# CHECK-NOFP-NOT: vcvt.f16.u16 q2, q1, #10 @ encoding: [0xb6,0xff,0x52,0x4c] 194vcvt.f16.u16 q2, q1, #10 195 196# CHECK: vcvt.u16.f16 q0, q0, #3 @ encoding: [0xbd,0xff,0x50,0x0d] 197# CHECK-NOFP-NOT: vcvt.u16.f16 q0, q0, #3 @ encoding: [0xbd,0xff,0x50,0x0d] 198vcvt.u16.f16 q0, q0, #3 199 200# CHECK: vcvt.f32.s32 q1, q7, #1 @ encoding: [0xbf,0xef,0x5e,0x2e] 201# CHECK-NOFP-NOT: vcvt.f32.s32 q1, q7, #1 @ encoding: [0xbf,0xef,0x5e,0x2e] 202vcvt.f32.s32 q1, q7, #1 203 204# CHECK: vcvt.f32.s32 q1, q7, #32 @ encoding: [0xa0,0xef,0x5e,0x2e] 205# CHECK-NOFP-NOT: vcvt.f32.s32 q1, q7, #32 @ encoding: [0xa0,0xef,0x5e,0x2e] 206vcvt.f32.s32 q1, q7, #32 207 208# CHECK: vcvt.f32.s32 q1, q7, #6 @ encoding: [0xba,0xef,0x5e,0x2e] 209# CHECK-NOFP-NOT: vcvt.f32.s32 q1, q7, #6 @ encoding: [0xba,0xef,0x5e,0x2e] 210vcvt.f32.s32 q1, q7, #6 211 212# CHECK: vcvt.s32.f32 q1, q0, #21 @ encoding: [0xab,0xef,0x50,0x2f] 213# CHECK-NOFP-NOT: vcvt.s32.f32 q1, q0, #21 @ encoding: [0xab,0xef,0x50,0x2f] 214vcvt.s32.f32 q1, q0, #21 215 216# CHECK: vcvt.f32.u32 q1, q4, #4 @ encoding: [0xbc,0xff,0x58,0x2e] 217# CHECK-NOFP-NOT: vcvt.f32.u32 q1, q4, #4 @ encoding: [0xbc,0xff,0x58,0x2e] 218vcvt.f32.u32 q1, q4, #4 219 220# CHECK: vcvt.u32.f32 q1, q5, #8 @ encoding: [0xb8,0xff,0x5a,0x2f] 221# CHECK-NOFP-NOT: vcvt.u32.f32 q1, q5, #8 @ encoding: [0xb8,0xff,0x5a,0x2f] 222vcvt.u32.f32 q1, q5, #8 223 224# ERROR: [[@LINE+1]]:{{[0-9]+}}: {{error|note}}: MVE fixed-point immediate operand must be between 1 and 16 225vcvt.f16.s16 q0, q1, #-1 226 227# ERROR: [[@LINE+1]]:{{[0-9]+}}: {{error|note}}: MVE fixed-point immediate operand must be between 1 and 16 228vcvt.f16.s16 q0, q1, #0 229 230# ERROR: [[@LINE+1]]:{{[0-9]+}}: {{error|note}}: MVE fixed-point immediate operand must be between 1 and 16 231vcvt.f16.s16 q0, q1, #17 232 233# ERROR: [[@LINE+1]]:{{[0-9]+}}: {{error|note}}: MVE fixed-point immediate operand must be between 1 and 32 234vcvt.f32.s32 q0, q1, #-1 235 236# ERROR: [[@LINE+1]]:{{[0-9]+}}: {{error|note}}: MVE fixed-point immediate operand must be between 1 and 32 237vcvt.f32.s32 q0, q1, #0 238 239# ERROR: [[@LINE+1]]:{{[0-9]+}}: {{error|note}}: MVE fixed-point immediate operand must be between 1 and 32 240vcvt.f32.s32 q0, q1, #33 241 242# CHECK: vcvt.f16.s16 q0, q1 @ encoding: [0xb7,0xff,0x42,0x06] 243# CHECK-NOFP-NOT: vcvt.f16.s16 q0, q1 @ encoding: [0xb7,0xff,0x42,0x06] 244vcvt.f16.s16 q0, q1 245 246# CHECK: vcvt.f16.u16 q0, q4 @ encoding: [0xb7,0xff,0xc8,0x06] 247# CHECK-NOFP-NOT: vcvt.f16.u16 q0, q4 @ encoding: [0xb7,0xff,0xc8,0x06] 248vcvt.f16.u16 q0, q4 249 250# CHECK: vcvt.s16.f16 q0, q0 @ encoding: [0xb7,0xff,0x40,0x07] 251# CHECK-NOFP-NOT: vcvt.s16.f16 q0, q0 @ encoding: [0xb7,0xff,0x40,0x07] 252vcvt.s16.f16 q0, q0 253 254# CHECK: vcvt.u16.f16 q0, q0 @ encoding: [0xb7,0xff,0xc0,0x07] 255# CHECK-NOFP-NOT: vcvt.u16.f16 q0, q0 @ encoding: [0xb7,0xff,0xc0,0x07] 256vcvt.u16.f16 q0, q0 257 258# CHECK: vcvt.f32.s32 q0, q0 @ encoding: [0xbb,0xff,0x40,0x06] 259# CHECK-NOFP-NOT: vcvt.f32.s32 q0, q0 @ encoding: [0xbb,0xff,0x40,0x06] 260vcvt.f32.s32 q0, q0 261 262# CHECK: vcvt.f32.u32 q0, q0 @ encoding: [0xbb,0xff,0xc0,0x06] 263# CHECK-NOFP-NOT: vcvt.f32.u32 q0, q0 @ encoding: [0xbb,0xff,0xc0,0x06] 264vcvt.f32.u32 q0, q0 265 266# CHECK: vcvt.s32.f32 q0, q0 @ encoding: [0xbb,0xff,0x40,0x07] 267# CHECK-NOFP-NOT: vcvt.s32.f32 q0, q0 @ encoding: [0xbb,0xff,0x40,0x07] 268vcvt.s32.f32 q0, q0 269 270# CHECK: vcvt.u32.f32 q0, q2 @ encoding: [0xbb,0xff,0xc4,0x07] 271# CHECK-NOFP-NOT: vcvt.u32.f32 q0, q2 @ encoding: [0xbb,0xff,0xc4,0x07] 272vcvt.u32.f32 q0, q2 273 274# CHECK: vcvta.s16.f16 q0, q7 @ encoding: [0xb7,0xff,0x4e,0x00] 275# CHECK-NOFP-NOT: vcvta.s16.f16 q0, q7 @ encoding: [0xb7,0xff,0x4e,0x00] 276vcvta.s16.f16 q0, q7 277 278# CHECK: vcvta.s32.f32 s2, s3 @ encoding: [0xbc,0xfe,0xe1,0x1a] 279# CHECK-NOFP-NOT: vcvta.s32.f32 s2, s3 @ encoding: [0xbc,0xfe,0xe1,0x1a] 280vcvta.s32.f32 s2, s3 281 282# CHECK: vcvta.s16.f16 q0, q7 @ encoding: [0xb7,0xff,0x4e,0x00] 283# CHECK-NOFP-NOT: vcvta.s16.f16 q0, q7 @ encoding: [0xb7,0xff,0x4e,0x00] 284vcvta.s16.f16 q0, q7 285 286# CHECK: vcvtn.u32.f32 q7, q6 @ encoding: [0xbb,0xff,0xcc,0xe1] 287# CHECK-NOFP-NOT: vcvtn.u32.f32 q7, q6 @ encoding: [0xbb,0xff,0xcc,0xe1] 288vcvtn.u32.f32 q7, q6 289 290# CHECK: vcvtp.s32.f32 q0, q7 @ encoding: [0xbb,0xff,0x4e,0x02] 291# CHECK-NOFP-NOT: vcvtp.s32.f32 q0, q7 @ encoding: [0xbb,0xff,0x4e,0x02] 292vcvtp.s32.f32 q0, q7 293 294# CHECK: vcvtm.u32.f32 q1, q4 @ encoding: [0xbb,0xff,0xc8,0x23] 295# CHECK-NOFP-NOT: vcvtm.u32.f32 q1, q4 @ encoding: [0xbb,0xff,0xc8,0x23] 296vcvtm.u32.f32 q1, q4 297 298# CHECK: vneg.f16 q0, q7 @ encoding: [0xb5,0xff,0xce,0x07] 299# CHECK-NOFP-NOT: vneg.f16 q0, q7 @ encoding: [0xb5,0xff,0xce,0x07] 300vneg.f16 q0, q7 301 302# CHECK: vneg.f32 q0, q2 @ encoding: [0xb9,0xff,0xc4,0x07] 303# CHECK-NOFP-NOT: vneg.f32 q0, q2 @ encoding: [0xb9,0xff,0xc4,0x07] 304vneg.f32 q0, q2 305 306# CHECK: vabs.f16 q0, q2 @ encoding: [0xb5,0xff,0x44,0x07] 307# CHECK-NOFP-NOT: vabs.f16 q0, q2 @ encoding: [0xb5,0xff,0x44,0x07] 308vabs.f16 q0, q2 309 310# CHECK: vabs.f32 q0, q0 @ encoding: [0xb9,0xff,0x40,0x07] 311# CHECK-NOFP-NOT: vabs.f32 q0, q0 @ encoding: [0xb9,0xff,0x40,0x07] 312vabs.f32 q0, q0 313 314# CHECK: vmaxnma.f16 q1, q1 @ encoding: [0x3f,0xfe,0x83,0x2e] 315# CHECK-NOFP-NOT: vmaxnma.f16 q1, q1 @ encoding: [0x3f,0xfe,0x83,0x2e] 316vmaxnma.f16 q1, q1 317 318# CHECK: vmaxnma.f32 q2, q6 @ encoding: [0x3f,0xee,0x8d,0x4e] 319# CHECK-NOFP-NOT: vmaxnma.f32 q2, q6 @ encoding: [0x3f,0xee,0x8d,0x4e] 320vmaxnma.f32 q2, q6 321 322# CHECK: vminnma.f16 q0, q2 @ encoding: [0x3f,0xfe,0x85,0x1e] 323# CHECK-NOFP-NOT: vminnma.f16 q0, q2 @ encoding: [0x3f,0xfe,0x85,0x1e] 324vminnma.f16 q0, q2 325 326# CHECK: vminnma.f32 q0, q1 @ encoding: [0x3f,0xee,0x83,0x1e] 327# CHECK-NOFP-NOT: vminnma.f32 q0, q1 @ encoding: [0x3f,0xee,0x83,0x1e] 328vminnma.f32 q0, q1 329 330it eq 331vaddeq.f32 s0, s1 332# CHECK: it eq @ encoding: [0x08,0xbf] 333# CHECK: vaddeq.f32 s0, s0, s1 @ encoding: [0x30,0xee,0x20,0x0a] 334# CHECK-NOFP-NOT: vaddeq.f32 s0, s0, s1 @ encoding: [0x30,0xee,0x20,0x0a] 335 336vpst 337vaddt.f16 q0, q1, q2 338# CHECK: vpst @ encoding: [0x71,0xfe,0x4d,0x0f] 339# CHECK: vaddt.f16 q0, q1, q2 @ encoding: [0x12,0xef,0x44,0x0d] 340# CHECK-NOFP-NOT: vaddt.f16 q0, q1, q2 @ encoding: [0x12,0xef,0x44,0x0d] 341 342vpste 343vcvtmt.u32.f32 q0, q1 344vcvtne.s32.f32 q0, q1 345# CHECK: vpste @ encoding: [0x71,0xfe,0x4d,0x8f] 346# CHECK: vtmt.u32.f32 q0, q1 @ encoding: [0xbb,0xff,0xc2,0x03] 347# CHECK-NOFP-NOT: vtmt.u32.f32 q0, q1 @ encoding: [0xbb,0xff,0xc2,0x03] 348# CHECK: vcvtne.s32.f32 q0, q1 @ encoding: [0xbb,0xff,0x42,0x01] 349# CHECK-NOFP-NOT: vcvtne.s32.f32 q0, q1 @ encoding: [0xbb,0xff,0x42,0x01] 350 351it ne 352vcvtne.s32.f32 s0, s1 353# CHECK: it ne @ encoding: [0x18,0xbf] 354# CHECK: vcvtne.s32.f32 s0, s1 @ encoding: [0xbd,0xee,0xe0,0x0a] 355# CHECK-NOFP-NOT: vcvtne.s32.f32 s0, s1 @ encoding: [0xbd,0xee,0xe0,0x0a] 356 357it ge 358vcvttge.f64.f16 d3, s1 359# CHECK: it ge @ encoding: [0xa8,0xbf] 360# CHECK: vcvttge.f64.f16 d3, s1 @ encoding: [0xb2,0xee,0xe0,0x3b] 361# CHECK-NOFP-NOT: vcvttge.f64.f16 d3, s1 @ encoding: [0xb2,0xee,0xe0,0x3b] 362 363# ---------------------------------------------------------------------- 364# The following tests have to go last because of the NOFP-NOT checks inside the 365# VPT block. 366 367vpte.f32 lt, q3, r1 368vcvtt.u32.f32 q2, q0 369vcvte.u32.f32 q1, q0 370# CHECK: vpte.f32 lt, q3, r1 @ encoding: [0x77,0xee,0xc1,0x9f] 371# CHECK-NOFP-NOT: vpte.f32 lt, q3, r1 @ encoding: [0x77,0xee,0xe1,0x8f] 372# CHECK: vcvtt.u32.f32 q2, q0 @ encoding: [0xbb,0xff,0xc0,0x47] 373# CHECK-NOFP-NOT: vcvtt.u32.f32 q2, q0 @ encoding: [0xbb,0xff,0xc0,0x47] 374# CHECK: vcvte.u32.f32 q1, q0 @ encoding: [0xbb,0xff,0xc0,0x27] 375# CHECK-NOFP-NOT: vcvte.u32.f32 q1, q0 @ encoding: [0xbb,0xff,0xc0,0x27] 376 377ite eq 378vcvteq.u32.f32 s0, s1 379vcvtne.f32.u32 s0, s1 380# CHECK: ite eq @ encoding: [0x0c,0xbf] 381# CHECK: vcvteq.u32.f32 s0, s1 @ encoding: [0xbc,0xee,0xe0,0x0a] 382# CHECK-NOFP-NOT: vcvteq.u32.f32 s0, s1 @ encoding: [0xbc,0xee,0xe0,0x0a] 383# CHECK: vcvtne.f32.u32 s0, s1 @ encoding: [0xb8,0xee,0x60,0x0a] 384# CHECK-NOFP-NOT: vcvtne.f32.u32 s0, s1 @ encoding: [0xb8,0xee,0x60,0x0a] 385 386vpste 387vmult.f16 q0, q1, q2 388vmule.f16 q0, q1, q2 389# CHECK: vpste @ encoding: [0x71,0xfe,0x4d,0x8f] 390# CHECK: vmult.f16 q0, q1, q2 @ encoding: [0x12,0xff,0x54,0x0d] 391# CHECK-NOFP-NOT: vmult.f16 q0, q1, q2 @ encoding: [0x12,0xff,0x54,0x0d] 392# CHECK: vmule.f16 q0, q1, q2 @ encoding: [0x12,0xff,0x54,0x0d] 393# CHECK-NOFP-NOT: vmule.f16 q0, q1, q2 @ encoding: [0x12,0xff,0x54,0x0d] 394 395ite eq 396vmuleq.f64 d0, d0, d1 397vmulne.f64 d1, d0, d2 398# CHECK: ite eq @ encoding: [0x0c,0xbf] 399# CHECK: vmuleq.f64 d0, d0, d1 @ encoding: [0x20,0xee,0x01,0x0b] 400# CHECK-NOFP-NOT: vmuleq.f64 d0, d0, d1 @ encoding: [0x20,0xee,0x01,0x0b] 401# CHECK: vmulne.f64 d1, d0, d2 @ encoding: [0x20,0xee,0x02,0x1b] 402# CHECK-NOFP-NOT: vmulne.f64 d1, d0, d2 @ encoding: [0x20,0xee,0x02,0x1b] 403 404it eq 405vnegeq.f32 s0, s1 406# CHECK: it eq @ encoding: [0x08,0xbf] 407# CHECK: vnegeq.f32 s0, s1 @ encoding: [0xb1,0xee,0x60,0x0a] 408# CHECK-NOFP-NOT: vnegeq.f32 s0, s1 @ encoding: [0xb1,0xee,0x60,0x0a] 409 410itt eq 411vnmuleq.f32 s0, s1, s2 412vmuleq.f32 s0, s1, s2 413# CHECK: itt eq @ encoding: [0x04,0xbf] 414# CHECK: vnmuleq.f32 s0, s1, s2 @ encoding: [0x20,0xee,0xc1,0x0a] 415# CHECK-NOFP-NOT: vnmuleq.f32 s0, s1, s2 @ encoding: [0x20,0xee,0xc1,0x0a] 416# CHECK: vmuleq.f32 s0, s1, s2 @ encoding: [0x20,0xee,0x81,0x0a] 417# CHECK-NOFP-NOT: vmuleq.f32 s0, s1, s2 @ encoding: [0x20,0xee,0x81,0x0a] 418 419vpste 420vrintnt.f16 q0, q1 421vrintne.f32 q0, q1 422# CHECK: vpste @ encoding: [0x71,0xfe,0x4d,0x8f] 423# CHECK: vrintnt.f16 q0, q1 @ encoding: [0xb6,0xff,0x42,0x04] 424# CHECK-NOFP-NOT: vrintnt.f16 q0, q1 @ encoding: [0xb6,0xff,0x42,0x04] 425# CHECK: vrintne.f32 q0, q1 @ encoding: [0xba,0xff,0x42,0x04] 426# CHECK-NOFP-NOT: vrintne.f32 q0, q1 @ encoding: [0xba,0xff,0x42,0x04] 427