1 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sme2
,+sve-bfscale
< %s \
2 // RUN
: | FileCheck
%s
--check-prefixes
=CHECK-ENCODING
,CHECK-INST
3 // RUN
: not llvm-mc
-triple
=aarch64
-show-encoding
< %s
2>&1 \
4 // RUN
: | FileCheck
%s
--check-prefix
=CHECK-ERROR
5 // RUN
: llvm-mc
-triple
=aarch64
-filetype
=obj
-mattr
=+sme2
,+sve-bfscale
< %s \
6 // RUN
: | llvm-objdump
-d
--mattr
=+sme2
,+sve-bfscale
- | FileCheck
%s
--check-prefix
=CHECK-INST
7 // RUN
: llvm-mc
-triple
=aarch64
-filetype
=obj
-mattr
=+sme2
,+sve-bfscale
< %s \
8 // RUN
: | llvm-objdump
-d
--mattr
=-sme2
- | FileCheck
%s
--check-prefix
=CHECK-UNKNOWN
9 // Disassemble encoding
and check the re-encoding
(-show-encoding
) matches.
10 // RUN
: llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sme2
,+sve-bfscale
< %s \
11 // RUN
: | sed
'/.text/d' | sed
's/.*encoding: //g' \
12 // RUN
: | llvm-mc
-triple
=aarch64
-mattr
=+sme2
,+sve-bfscale
-disassemble
-show-encoding \
13 // RUN
: | FileCheck
%s
--check-prefixes
=CHECK-ENCODING
,CHECK-INST
15 // Multiple
and single vector
, 2 regs
17 bfscale
{z0.h-z1.h
}, {z0.h-z1.h
}, z0.h
// 11000001-00100000-10100001-10000000
18 // CHECK-INST
: bfscale
{ z0.h
, z1.h
}, { z0.h
, z1.h
}, z0.h
19 // CHECK-ENCODING
: [0x80,0xa1,0x20,0xc1]
20 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
21 // CHECK-UNKNOWN
: c120a180
<unknown
>
23 bfscale
{z20.h-z21.h
}, {z20.h-z21.h
}, z5.h
// 11000001-00100101-10100001-10010100
24 // CHECK-INST
: bfscale
{ z20.h
, z21.h
}, { z20.h
, z21.h
}, z5.h
25 // CHECK-ENCODING
: [0x94,0xa1,0x25,0xc1]
26 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
27 // CHECK-UNKNOWN
: c125a194
<unknown
>
29 bfscale
{z30.h-z31.h
}, {z30.h-z31.h
}, z15.h
// 11000001-00101111-10100001-10011110
30 // CHECK-INST
: bfscale
{ z30.h
, z31.h
}, { z30.h
, z31.h
}, z15.h
31 // CHECK-ENCODING
: [0x9e,0xa1,0x2f,0xc1]
32 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
33 // CHECK-UNKNOWN
: c12fa19e
<unknown
>
35 // Multiple
and single vector
, 4 regs
37 bfscale
{z0.h-z3.h
}, {z0.h-z3.h
}, z0.h
// 11000001-00100000-10101001-10000000
38 // CHECK-INST
: bfscale
{ z0.h
- z3.h
}, { z0.h
- z3.h
}, z0.h
39 // CHECK-ENCODING
: [0x80,0xa9,0x20,0xc1]
40 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
41 // CHECK-UNKNOWN
: c120a980
<unknown
>
43 bfscale
{z20.h-z23.h
}, {z20.h-z23.h
}, z5.h
// 11000001-00100101-10101001-10010100
44 // CHECK-INST
: bfscale
{ z20.h
- z23.h
}, { z20.h
- z23.h
}, z5.h
45 // CHECK-ENCODING
: [0x94,0xa9,0x25,0xc1]
46 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
47 // CHECK-UNKNOWN
: c125a994
<unknown
>
49 bfscale
{z28.h-z31.h
}, {z28.h-z31.h
}, z15.h
// 11000001-00101111-10101001-10011100
50 // CHECK-INST
: bfscale
{ z28.h
- z31.h
}, { z28.h
- z31.h
}, z15.h
51 // CHECK-ENCODING
: [0x9c,0xa9,0x2f,0xc1]
52 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
53 // CHECK-UNKNOWN
: c12fa99c
<unknown
>
55 // Multiple vectors
, 2 regs
57 bfscale
{z0.h-z1.h
}, {z0.h-z1.h
}, {z0.h-z1.h
} // 11000001-00100000-10110001-10000000
58 // CHECK-INST
: bfscale
{ z0.h
, z1.h
}, { z0.h
, z1.h
}, { z0.h
, z1.h
}
59 // CHECK-ENCODING
: [0x80,0xb1,0x20,0xc1]
60 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
61 // CHECK-UNKNOWN
: c120b180
<unknown
>
63 bfscale
{z20.h-z21.h
}, {z20.h-z21.h
}, {z20.h-z21.h
} // 11000001-00110100-10110001-10010100
64 // CHECK-INST
: bfscale
{ z20.h
, z21.h
}, { z20.h
, z21.h
}, { z20.h
, z21.h
}
65 // CHECK-ENCODING
: [0x94,0xb1,0x34,0xc1]
66 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
67 // CHECK-UNKNOWN
: c134b194
<unknown
>
69 bfscale
{z30.h-z31.h
}, {z30.h-z31.h
}, {z30.h-z31.h
} // 11000001-00111110-10110001-10011110
70 // CHECK-INST
: bfscale
{ z30.h
, z31.h
}, { z30.h
, z31.h
}, { z30.h
, z31.h
}
71 // CHECK-ENCODING
: [0x9e,0xb1,0x3e,0xc1]
72 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
73 // CHECK-UNKNOWN
: c13eb19e
<unknown
>
75 // Multiple vectors
, 4 regs
77 bfscale
{z0.h-z3.h
}, {z0.h-z3.h
}, {z0.h-z3.h
} // 11000001-00100000-10111001-10000000
78 // CHECK-INST
: bfscale
{ z0.h
- z3.h
}, { z0.h
- z3.h
}, { z0.h
- z3.h
}
79 // CHECK-ENCODING
: [0x80,0xb9,0x20,0xc1]
80 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
81 // CHECK-UNKNOWN
: c120b980
<unknown
>
83 bfscale
{z20.h-z23.h
}, {z20.h-z23.h
}, {z20.h-z23.h
} // 11000001-00110100-10111001-10010100
84 // CHECK-INST
: bfscale
{ z20.h
- z23.h
}, { z20.h
- z23.h
}, { z20.h
- z23.h
}
85 // CHECK-ENCODING
: [0x94,0xb9,0x34,0xc1]
86 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
87 // CHECK-UNKNOWN
: c134b994
<unknown
>
89 bfscale
{z28.h-z31.h
}, {z28.h-z31.h
}, {z28.h-z31.h
} // 11000001-00111100-10111001-10011100
90 // CHECK-INST
: bfscale
{ z28.h
- z31.h
}, { z28.h
- z31.h
}, { z28.h
- z31.h
}
91 // CHECK-ENCODING
: [0x9c,0xb9,0x3c,0xc1]
92 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
93 // CHECK-UNKNOWN
: c13cb99c
<unknown
>