]>
Commit | Line | Data |
---|---|---|
e66cfcef TC |
1 | /* Checks the special cases for FCVT and LSL. |
2 | Has invalid usages. Diagnosis required. */ | |
3 | .text | |
4 | .arch armv8-a+sve | |
5 | ||
6 | f: | |
83adff69 RS |
7 | .macro test_cvt, insn |
8 | ||
e66cfcef TC |
9 | /* Not OK, 64-bit operation, upper 32-bits cleared. */ |
10 | movprfx Z0.S, P1/M, Z1.S | |
83adff69 | 11 | \insn Z0.S, P1/M, Z2.D |
e66cfcef TC |
12 | |
13 | /* OK, 64-bit operation, upper 32-bits cleared. */ | |
14 | movprfx Z0.D, P1/M, Z1.D | |
83adff69 | 15 | \insn Z0.S, P1/M, Z2.D |
e66cfcef TC |
16 | |
17 | /* Not OK, 64-bit operation ignoring 32-bits. */ | |
18 | movprfx Z0.S, P1/M, Z1.S | |
83adff69 | 19 | \insn Z0.D, P1/M, Z2.S |
e66cfcef TC |
20 | |
21 | /* OK, 64-bit operation ignoring 32-bits. */ | |
22 | movprfx Z0.D, P1/M, Z1.D | |
83adff69 RS |
23 | \insn Z0.D, P1/M, Z2.S |
24 | .endm test_cvt | |
e66cfcef | 25 | |
83adff69 | 26 | .macro test_shift, insn |
e66cfcef TC |
27 | /* OK, 8-bit operation. */ |
28 | movprfx Z0.B, P1/M, Z1.B | |
83adff69 | 29 | \insn Z0.B, P1/M, Z0.B, Z2.D |
e66cfcef TC |
30 | |
31 | /* Not Ok, destination register sizes don't match. */ | |
32 | movprfx Z0.D, P1/M, Z1.D | |
83adff69 RS |
33 | \insn Z0.B, P1/M, Z0.B, Z2.D |
34 | .endm test_shift | |
35 | ||
36 | test_cvt fcvt | |
37 | test_cvt fcvtzs | |
38 | test_cvt fcvtzu | |
39 | test_cvt scvtf | |
40 | test_cvt ucvtf | |
41 | ||
42 | test_shift lsl | |
43 | test_shift lsr | |
44 | test_shift asr | |
45 | ||
e66cfcef TC |
46 | ret |
47 |