Skip to content

Commit be7cf63

Browse files
[AArch64] Add FPCR register usages to mop4 instructions (#135641)
Ensure all floating mop4 instructions implicitly use FPCR
1 parent 92bfbbc commit be7cf63

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

llvm/lib/Target/AArch64/SMEInstrFormats.td

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5601,6 +5601,7 @@ class sme2_bf16_fp32_quarter_tile_outer_product<bit M, bit N, bit S, string mnem
56015601
let Inst{1-0} = ZAda;
56025602

56035603
let Constraints = "$ZAda = $_ZAda";
5604+
let Uses = [FPCR];
56045605
}
56055606

56065607
multiclass sme2_bfmop4as_widening<bit S, string mnemonic, string op> {
@@ -5764,6 +5765,7 @@ class sme2_fp16_quarter_tile_outer_product<bit M, bit N, bit S, string mnemonic,
57645765
let Inst{0} = ZAda;
57655766

57665767
let Constraints = "$ZAda = $_ZAda";
5768+
let Uses = [FPCR];
57675769
}
57685770

57695771
multiclass sme2_fmop4as_fp16_non_widening<bit S, string mnemonic, string op> {
@@ -5869,6 +5871,7 @@ class sme2_bf16_fp16_quarter_tile_outer_product<bit M, bit N, bit S, string mnem
58695871
let Inst{0} = ZAda;
58705872

58715873
let Constraints = "$ZAda = $_ZAda";
5874+
let Uses = [FPCR];
58725875
}
58735876

58745877
multiclass sme2_bfmop4as_non_widening<bit S, string mnemonic, string op> {
@@ -5922,6 +5925,7 @@ class sme2_fp32_quarter_tile_outer_product<bit M, bit N, bit S, string mnemonic,
59225925
let Inst{1-0} = ZAda;
59235926

59245927
let Constraints = "$ZAda = $_ZAda";
5928+
let Uses = [FPCR];
59255929
}
59265930

59275931
multiclass sme2_fmop4as_fp32_non_widening<bit S, string mnemonic, string op> {
@@ -5975,6 +5979,7 @@ class sme2_fp64_quarter_tile_outer_product<bit M, bit N, bit S, string mnemonic,
59755979
let Inst{2-0} = ZAda;
59765980

59775981
let Constraints = "$ZAda = $_ZAda";
5982+
let Uses = [FPCR];
59785983
}
59795984

59805985
multiclass sme2_fmop4as_fp64_non_widening<bit S, string mnemonic, string op> {
@@ -6028,6 +6033,7 @@ class sme2_fp16_fp32_quarter_tile_outer_product<bit M, bit N, bit S, string mnem
60286033
let Inst{1-0} = ZAda;
60296034

60306035
let Constraints = "$ZAda = $_ZAda";
6036+
let Uses = [FPCR];
60316037
}
60326038

60336039
multiclass sme2_fmop4as_fp16_fp32_widening<bit S, string mnemonic, string op> {

0 commit comments

Comments
 (0)