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
, 2 regs
17 bfmul
{z0.h-z1.h
}, {z0.h-z1.h
}, z0.h
// 11000001-00100000-11101000-00000000
18 // CHECK-INST
: bfmul
{ z0.h
, z1.h
}, { z0.h
, z1.h
}, z0.h
19 // CHECK-ENCODING
: [0x00,0xe8,0x20,0xc1]
20 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
21 // CHECK-UNKNOWN
: c120e800
<unknown
>
23 bfmul
{z20.h-z21.h
}, {z10.h-z11.h
}, z10.h
// 11000001-00110100-11101001-01010100
24 // CHECK-INST
: bfmul
{ z20.h
, z21.h
}, { z10.h
, z11.h
}, z10.h
25 // CHECK-ENCODING
: [0x54,0xe9,0x34,0xc1]
26 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
27 // CHECK-UNKNOWN
: c134e954
<unknown
>
29 bfmul
{z30.h-z31.h
}, {z30.h-z31.h
}, z15.h
// 11000001-00111110-11101011-11011110
30 // CHECK-INST
: bfmul
{ z30.h
, z31.h
}, { z30.h
, z31.h
}, z15.h
31 // CHECK-ENCODING
: [0xde,0xeb,0x3e,0xc1]
32 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
33 // CHECK-UNKNOWN
: c13eebde
<unknown
>
35 // Multiple
and single
, 4 regs
37 bfmul
{z0.h-z3.h
}, {z0.h-z3.h
}, z0.h
// 11000001-00100001-11101000-00000000
38 // CHECK-INST
: bfmul
{ z0.h
- z3.h
}, { z0.h
- z3.h
}, z0.h
39 // CHECK-ENCODING
: [0x00,0xe8,0x21,0xc1]
40 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
41 // CHECK-UNKNOWN
: c121e800
<unknown
>
43 bfmul
{z20.h-z23.h
}, {z8.h-z11.h
}, z10.h
// 11000001-00110101-11101001-00010100
44 // CHECK-INST
: bfmul
{ z20.h
- z23.h
}, { z8.h
- z11.h
}, z10.h
45 // CHECK-ENCODING
: [0x14,0xe9,0x35,0xc1]
46 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
47 // CHECK-UNKNOWN
: c135e914
<unknown
>
49 bfmul
{z28.h-z31.h
}, {z28.h-z31.h
}, z15.h
// 11000001-00111111-11101011-10011100
50 // CHECK-INST
: bfmul
{ z28.h
- z31.h
}, { z28.h
- z31.h
}, z15.h
51 // CHECK-ENCODING
: [0x9c,0xeb,0x3f,0xc1]
52 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
53 // CHECK-UNKNOWN
: c13feb9c
<unknown
>
56 bfmul
{z0.h-z1.h
}, {z0.h-z1.h
}, {z0.h-z1.h
} // 11000001-00100000-11100100-00000000
57 // CHECK-INST
: bfmul
{ z0.h
, z1.h
}, { z0.h
, z1.h
}, { z0.h
, z1.h
}
58 // CHECK-ENCODING
: [0x00,0xe4,0x20,0xc1]
59 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
60 // CHECK-UNKNOWN
: c120e400
<unknown
>
62 bfmul
{z20.h-z21.h
}, {z10.h-z11.h
}, {z20.h-z21.h
} // 11000001-00110100-11100101-01010100
63 // CHECK-INST
: bfmul
{ z20.h
, z21.h
}, { z10.h
, z11.h
}, { z20.h
, z21.h
}
64 // CHECK-ENCODING
: [0x54,0xe5,0x34,0xc1]
65 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
66 // CHECK-UNKNOWN
: c134e554
<unknown
>
68 bfmul
{z30.h-z31.h
}, {z30.h-z31.h
}, {z30.h-z31.h
} // 11000001-00111110-11100111-11011110
69 // CHECK-INST
: bfmul
{ z30.h
, z31.h
}, { z30.h
, z31.h
}, { z30.h
, z31.h
}
70 // CHECK-ENCODING
: [0xde,0xe7,0x3e,0xc1]
71 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
72 // CHECK-UNKNOWN
: c13ee7de
<unknown
>
76 bfmul
{z0.h-z3.h
}, {z0.h-z3.h
}, {z0.h-z3.h
} // 11000001-00100001-11100100-00000000
77 // CHECK-INST
: bfmul
{ z0.h
- z3.h
}, { z0.h
- z3.h
}, { z0.h
- z3.h
}
78 // CHECK-ENCODING
: [0x00,0xe4,0x21,0xc1]
79 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
80 // CHECK-UNKNOWN
: c121e400
<unknown
>
82 bfmul
{z20.h-z23.h
}, {z8.h-z11.h
}, {z20.h-z23.h
} // 11000001-00110101-11100101-00010100
83 // CHECK-INST
: bfmul
{ z20.h
- z23.h
}, { z8.h
- z11.h
}, { z20.h
- z23.h
}
84 // CHECK-ENCODING
: [0x14,0xe5,0x35,0xc1]
85 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
86 // CHECK-UNKNOWN
: c135e514
<unknown
>
88 bfmul
{z28.h-z31.h
}, {z28.h-z31.h
}, {z28.h-z31.h
} // 11000001-00111101-11100111-10011100
89 // CHECK-INST
: bfmul
{ z28.h
- z31.h
}, { z28.h
- z31.h
}, { z28.h
- z31.h
}
90 // CHECK-ENCODING
: [0x9c,0xe7,0x3d,0xc1]
91 // CHECK-ERROR
: instruction requires
: sme2 sve-bfscale
92 // CHECK-UNKNOWN
: c13de79c
<unknown
>