blob: 15f52db14435da8efc4d70569c526e984a428924 [file] [log] [blame]
/* Checks the special cases for FCVT and LSL.
Has invalid usages. Diagnosis required. */
.text
.arch armv8-a+sve
f:
/* Not OK, 64-bit operation, upper 32-bits cleared. */
movprfx Z0.S, P1/M, Z1.S
fcvt Z0.S, P1/M, Z2.D
/* OK, 64-bit operation, upper 32-bits cleared. */
movprfx Z0.D, P1/M, Z1.D
fcvt Z0.S, P1/M, Z2.D
/* Not OK, 64-bit operation ignoring 32-bits. */
movprfx Z0.S, P1/M, Z1.S
fcvt Z0.D, P1/M, Z2.S
/* OK, 64-bit operation ignoring 32-bits. */
movprfx Z0.D, P1/M, Z1.D
fcvt Z0.D, P1/M, Z2.S
/* OK, 8-bit operation. */
movprfx Z0.B, P1/M, Z1.B
lsl Z0.B, P1/M, Z0.B, Z2.D
/* Not Ok, destination register sizes don't match. */
movprfx Z0.D, P1/M, Z1.D
lsl Z0.B, P1/M, Z0.B, Z2.D
ret