364 lines · plain
1// RUN: not llvm-mc -triple aarch64-none-eabi -mattr=-fp-armv8 < %s 2>&1 | FileCheck %s --implicit-check-not error2 3 ldr s0, [x0]4// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv85 str q0, [x0]6// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv87 8 fmov d0, xzr9// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv810 11 ldnp s0, s1, [x0, #16]12// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv813 ldnp d0, d1, [x0, #16]14// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv815 ldnp q0, q1, [x0, #16]16// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv817 18 ldp s0, s1, [x0, #16]19// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv820 ldp d0, d1, [x0, #16]21// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv822 ldp q0, q1, [x0, #16]23// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv824 25 ldp s0, s1, [x0], #1626// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv827 ldp d0, d1, [x0], #1628// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv829 ldp q0, q1, [x0], #1630// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv831 32 ldp s0, s1, [x0, #16]!33// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv834 ldp d0, d1, [x0, #16]!35// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv836 ldp q0, q1, [x0, #16]!37// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv838 39 40 ldr b0, [x0], #1641// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv842 ldr h0, [x0], #1643// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv844 ldr s0, [x0], #1645// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv846 ldr d0, [x0], #1647// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv848 ldr q0, [x0], #1649// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv850 51 ldr b0, [x0, #16]!52// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv853 ldr h0, [x0, #16]!54// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv855 ldr s0, [x0, #16]!56// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv857 ldr d0, [x0, #16]!58// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv859 ldr q0, [x0, #16]!60// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv861 62 ldr b0, [x0, x1]63// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv864 ldr h0, [x0, x1]65// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv866 ldr s0, [x0, x1]67// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv868 ldr d0, [x0, x1]69// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv870 ldr q0, [x0, x1]71// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv872 73 ldr b0, [x0, w1, sxtw]74// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv875 ldr h0, [x0, w1, sxtw]76// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv877 ldr s0, [x0, w1, sxtw]78// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv879 ldr d0, [x0, w1, sxtw]80// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv881 ldr q0, [x0, w1, sxtw]82// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv883 84 ldr b0, [x0, #16]85// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv886 ldr h0, [x0, #16]87// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv888 ldr s0, [x0, #16]89// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv890 ldr d0, [x0, #16]91// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv892 ldr q0, [x0, #16]93// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv894 95label:96 ldr s0, label97// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv898 ldr d0, label99// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8100 ldr q0, label101// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8102 103 stnp s0, s1, [x0, #16]104// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8105 stnp d0, d1, [x0, #16]106// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8107 stnp q0, q1, [x0, #16]108// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8109 110 stp s0, s1, [x0, #16]111// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8112 stp d0, d1, [x0, #16]113// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8114 stp q0, q1, [x0, #16]115// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8116 117 stp s0, s1, [x0], #16118// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8119 stp d0, d1, [x0], #16120// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8121 stp q0, q1, [x0], #16122// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8123 124 stp s0, s1, [x0, #16]!125// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8126 stp d0, d1, [x0, #16]!127// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8128 stp q0, q1, [x0, #16]!129// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8130 131 str b0, [x0], #16132// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8133 str h0, [x0], #16134// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8135 str s0, [x0], #16136// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8137 str d0, [x0], #16138// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8139 str q0, [x0], #16140// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8141 142 str b0, [x0, #16]!143// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8144 str h0, [x0, #16]!145// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8146 str s0, [x0, #16]!147// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8148 str d0, [x0, #16]!149// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8150 str q0, [x0, #16]!151// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8152 153 str b0, [x0, #16]154// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8155 str h0, [x0, #16]156// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8157 str s0, [x0, #16]158// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8159 str d0, [x0, #16]160// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8161 str q0, [x0, #16]162// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8163 164 str b0, [x0, x1]165// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8166 str h0, [x0, x1]167// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8168 str s0, [x0, x1]169// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8170 str d0, [x0, x1]171// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8172 str q0, [x0, x1]173// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8174 175 str b0, [x0, w1, sxtw]176// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8177 str h0, [x0, w1, sxtw]178// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8179 str s0, [x0, w1, sxtw]180// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8181 str d0, [x0, w1, sxtw]182// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8183 str q0, [x0, w1, sxtw]184// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8185 186 mrs x0, FPCR187// CHECK: [[@LINE-1]]:11: error: expected readable system register188 mrs x0, FPSR189// CHECK: [[@LINE-1]]:11: error: expected readable system register190 msr FPCR, x0191// CHECK: [[@LINE-1]]:7: error: expected writable system register or pstate192 msr FPSR, x0193// CHECK: [[@LINE-1]]:7: error: expected writable system register or pstate194 195 ldr s0, [x0, #1]196// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8197 str q0, [x0, #1]198// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8199 200 fmov s0, #0.0201// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8202 fmov d0, #0.0203// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8204 205 mvn v0.8b, v1.8b206// CHECK: [[@LINE-1]]:3: error: instruction requires: neon207 mvn v0.16b, v1.16b208// CHECK: [[@LINE-1]]:3: error: instruction requires: neon209 210 mov v0.16b, v1.16b211// CHECK: [[@LINE-1]]:3: error: instruction requires: neon212 mov v0.8h, v1.8h213// CHECK: [[@LINE-1]]:3: error: instruction requires: neon214 mov v0.4s, v1.4s215// CHECK: [[@LINE-1]]:3: error: instruction requires: neon216 mov v0.2d, v1.2d217// CHECK: [[@LINE-1]]:3: error: instruction requires: neon218 219 mov v0.8b, v1.8b220// CHECK: [[@LINE-1]]:3: error: instruction requires: neon221 mov v0.4h, v1.4h222// CHECK: [[@LINE-1]]:3: error: instruction requires: neon223 mov v0.2s, v1.2s224// CHECK: [[@LINE-1]]:3: error: instruction requires: neon225 mov v0.1d, v1.1d226// CHECK: [[@LINE-1]]:3: error: instruction requires: neon227 228 faclt v0.4h, v1.4h, v2.4h229// CHECK: [[@LINE-1]]:3: error: instruction requires: fullfp16 neon230 faclt v0.8h, v1.8h, v2.8h231// CHECK: [[@LINE-1]]:3: error: instruction requires: fullfp16 neon232 faclt v0.2s, v1.2s, v2.2s233// CHECK: [[@LINE-1]]:3: error: instruction requires: neon234 faclt v0.4s, v1.4s, v2.4s235// CHECK: [[@LINE-1]]:3: error: instruction requires: neon236 faclt v0.2d, v1.2d, v2.2d237// CHECK: [[@LINE-1]]:3: error: instruction requires: neon238 239 cmls d0, d1, d2240// CHECK: [[@LINE-1]]:3: error: instruction requires: neon241 cmle d0, d1, d2242// CHECK: [[@LINE-1]]:3: error: instruction requires: neon243 cmlo d0, d1, d2244// CHECK: [[@LINE-1]]:3: error: instruction requires: neon245 cmlt d0, d1, d2246// CHECK: [[@LINE-1]]:3: error: instruction requires: neon247 248 fcmle s0, s1, s2249// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8250 fcmle d0, d1, d2251// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8252 fcmlt s0, s1, s2253// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8254 fcmlt d0, d1, d2255// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8256 facle s0, s1, s2257// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8258 facle d0, d1, d2259// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8260 faclt s0, s1, s2261// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8262 faclt d0, d1, d2263// CHECK: [[@LINE-1]]:3: error: instruction requires: fp-armv8264 265 bic v0.4h, #42266// CHECK: [[@LINE-1]]:3: error: instruction requires: neon267 bic v0.8h, #42268// CHECK: [[@LINE-1]]:3: error: instruction requires: neon269 bic v0.2s, #42270// CHECK: [[@LINE-1]]:3: error: instruction requires: neon271 bic v0.4s, #42272// CHECK: [[@LINE-1]]:3: error: instruction requires: neon273 274 bic.4h v0, #42275// CHECK: [[@LINE-1]]:3: error: instruction requires: neon276 bic.8h v0, #42277// CHECK: [[@LINE-1]]:3: error: instruction requires: neon278 bic.2s v0, #42279// CHECK: [[@LINE-1]]:3: error: instruction requires: neon280 bic.4s v0, #42281// CHECK: [[@LINE-1]]:3: error: instruction requires: neon282 283 orr v0.4h, #42284// CHECK: [[@LINE-1]]:3: error: instruction requires: neon285 orr v0.8h, #42286// CHECK: [[@LINE-1]]:3: error: instruction requires: neon287 orr v0.2s, #42288// CHECK: [[@LINE-1]]:3: error: instruction requires: neon289 orr v0.4s, #42290// CHECK: [[@LINE-1]]:3: error: instruction requires: neon291 292 orr.4h v0, #42293// CHECK: [[@LINE-1]]:3: error: instruction requires: neon294 orr.8h v0, #42295// CHECK: [[@LINE-1]]:3: error: instruction requires: neon296 orr.2s v0, #42297// CHECK: [[@LINE-1]]:3: error: instruction requires: neon298 orr.4s v0, #42299// CHECK: [[@LINE-1]]:3: error: instruction requires: neon300 301 movi v0.4h, #42302// CHECK: [[@LINE-1]]:3: error: instruction requires: neon303 movi v0.8h, #42304// CHECK: [[@LINE-1]]:3: error: instruction requires: neon305 movi v0.2s, #42306// CHECK: [[@LINE-1]]:3: error: instruction requires: neon307 movi v0.4s, #42308// CHECK: [[@LINE-1]]:3: error: instruction requires: neon309 310 movi.4h v0, #42311// CHECK: [[@LINE-1]]:3: error: instruction requires: neon312 movi.8h v0, #42313// CHECK: [[@LINE-1]]:3: error: instruction requires: neon314 movi.2s v0, #42315// CHECK: [[@LINE-1]]:3: error: instruction requires: neon316 movi.4s v0, #42317// CHECK: [[@LINE-1]]:3: error: instruction requires: neon318 319 mvni v0.4h, #42320// CHECK: [[@LINE-1]]:3: error: instruction requires: neon321 mvni v0.8h, #42322// CHECK: [[@LINE-1]]:3: error: instruction requires: neon323 mvni v0.2s, #42324// CHECK: [[@LINE-1]]:3: error: instruction requires: neon325 mvni v0.4s, #42326// CHECK: [[@LINE-1]]:3: error: instruction requires: neon327 328 mvni.4h v0, #42329// CHECK: [[@LINE-1]]:3: error: instruction requires: neon330 mvni.8h v0, #42331// CHECK: [[@LINE-1]]:3: error: instruction requires: neon332 mvni.2s v0, #42333// CHECK: [[@LINE-1]]:3: error: instruction requires: neon334 mvni.4s v0, #42335// CHECK: [[@LINE-1]]:3: error: instruction requires: neon336 337 sxtl.8h v0, v1338// CHECK: [[@LINE-1]]:3: error: instruction requires: neon339 sxtl.4s v0, v1340// CHECK: [[@LINE-1]]:3: error: instruction requires: neon341 sxtl.2d v0, v1342// CHECK: [[@LINE-1]]:3: error: instruction requires: neon343 344 sxtl2.8h v0, v1345// CHECK: [[@LINE-1]]:3: error: instruction requires: neon346 sxtl2.4s v0, v1347// CHECK: [[@LINE-1]]:3: error: instruction requires: neon348 sxtl2.2d v0, v1349// CHECK: [[@LINE-1]]:3: error: instruction requires: neon350 351 uxtl.8h v0, v1352// CHECK: [[@LINE-1]]:3: error: instruction requires: neon353 uxtl.4s v0, v1354// CHECK: [[@LINE-1]]:3: error: instruction requires: neon355 uxtl.2d v0, v1356// CHECK: [[@LINE-1]]:3: error: instruction requires: neon357 358 uxtl2.8h v0, v1359// CHECK: [[@LINE-1]]:3: error: instruction requires: neon360 uxtl2.4s v0, v1361// CHECK: [[@LINE-1]]:3: error: instruction requires: neon362 uxtl2.2d v0, v1363// CHECK: [[@LINE-1]]:3: error: instruction requires: neon364