Skip to content

Commit 747dee9

Browse files
[AArch64] Add FPCR register usages to mop4 instructions
Ensure all floating mop4 instructions implicitly use FPCR
1 parent dbeb7c1 commit 747dee9

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
@@ -5595,6 +5595,7 @@ class sme2_bf16_fp32_quarter_tile_outer_product<bit M, bit N, bit S, string mnem
55955595
let Inst{1-0} = ZAda;
55965596

55975597
let Constraints = "$ZAda = $_ZAda";
5598+
let Uses = [FPCR];
55985599
}
55995600

56005601
multiclass sme2_bfmop4as_widening<bit S, string mnemonic, string op> {
@@ -5758,6 +5759,7 @@ class sme2_fp16_quarter_tile_outer_product<bit M, bit N, bit S, string mnemonic,
57585759
let Inst{0} = ZAda;
57595760

57605761
let Constraints = "$ZAda = $_ZAda";
5762+
let Uses = [FPCR];
57615763
}
57625764

57635765
multiclass sme2_fmop4as_fp16_non_widening<bit S, string mnemonic, string op> {
@@ -5846,6 +5848,7 @@ class sme2_bf16_fp16_quarter_tile_outer_product<bit M, bit N, bit S, string mnem
58465848
let Inst{0} = ZAda;
58475849

58485850
let Constraints = "$ZAda = $_ZAda";
5851+
let Uses = [FPCR];
58495852
}
58505853

58515854
multiclass sme2_bfmop4as_non_widening<bit S, string mnemonic, string op> {
@@ -5899,6 +5902,7 @@ class sme2_fp32_quarter_tile_outer_product<bit M, bit N, bit S, string mnemonic,
58995902
let Inst{1-0} = ZAda;
59005903

59015904
let Constraints = "$ZAda = $_ZAda";
5905+
let Uses = [FPCR];
59025906
}
59035907

59045908
multiclass sme2_fmop4as_fp32_non_widening<bit S, string mnemonic, string op> {
@@ -5952,6 +5956,7 @@ class sme2_fp64_quarter_tile_outer_product<bit M, bit N, bit S, string mnemonic,
59525956
let Inst{2-0} = ZAda;
59535957

59545958
let Constraints = "$ZAda = $_ZAda";
5959+
let Uses = [FPCR];
59555960
}
59565961

59575962
multiclass sme2_fmop4as_fp64_non_widening<bit S, string mnemonic, string op> {
@@ -6005,6 +6010,7 @@ class sme2_fp16_fp32_quarter_tile_outer_product<bit M, bit N, bit S, string mnem
60056010
let Inst{1-0} = ZAda;
60066011

60076012
let Constraints = "$ZAda = $_ZAda";
6013+
let Uses = [FPCR];
60086014
}
60096015

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

0 commit comments

Comments
 (0)