@@ -37,8 +37,9 @@ func.func @constant_with_multiple_users(%a: vector<[4]xf32>, %b: vector<[4]xf32>
37
37
// CHECK-LIVE-RANGE-NEXT: |E test.some_use
38
38
// CHECK-LIVE-RANGE-NEXT: E test.some_use
39
39
40
+ // expected-note@below {{tile operand is: <block argument> of type 'vector<[4]x[4]xf32>'}}
40
41
func.func @value_with_multiple_users (%tile: vector <[4 ]x[4 ]xf32 >, %a: vector <[4 ]xf32 >, %b: vector <[4 ]xf32 >, %index: index ) {
41
- // expected-error@below {{op failed to rectify tile operand with tile result (move required)}}
42
+ // expected-error@below {{op tile operand allocated to different SME virtial tile (move required)}}
42
43
%tile_a = arm_sme.move_vector_to_tile_slice %a , %tile , %index : vector <[4 ]xf32 > into vector <[4 ]x[4 ]xf32 >
43
44
%tile_b = arm_sme.move_vector_to_tile_slice %b , %tile , %index : vector <[4 ]xf32 > into vector <[4 ]x[4 ]xf32 >
44
45
" test.some_use" (%tile_a ) : (vector <[4 ]x[4 ]xf32 >) -> ()
@@ -143,8 +144,10 @@ func.func @non_overlapping_branches(%cond: i1) {
143
144
144
145
// Here %vecA and %vecB are not merged into the same live range (as they are unknown values).
145
146
// This means that %vecA and %vecB are both allocated to different tiles (which is not legal).
147
+
148
+ // expected-note@below {{tile operand is: <block argument> of type 'vector<[4]x[4]xf32>'}}
146
149
func.func @overlapping_branches (%cond: i1 , %vecA: vector <[4 ]x[4 ]xf32 >, %vecB: vector <[4 ]x[4 ]xf32 >) {
147
- // expected-error@below {{op failed to rectify tile operand with tile result (move required)}}
150
+ // expected-error@below {{op tile operand allocated to different SME virtial tile (move required)}}
148
151
%tile = scf.if %cond -> vector <[4 ]x[4 ]xf32 > {
149
152
scf.yield %vecA : vector <[4 ]x[4 ]xf32 >
150
153
} else {
0 commit comments