@@ -29,8 +29,7 @@ name: merge_scaled_str_with_unscaled_8
2929body : |
3030 bb.0.entry:
3131 ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_8
32- ; CHECK: STRBBui $wzr, $x0, 4 :: (store (s8))
33- ; CHECK-NEXT: STURBBi $wzr, $x0, 5 :: (store (s8))
32+ ; CHECK: STRHHui $wzr, $x0, 2 :: (store (s8))
3433 ; CHECK-NEXT: RET undef $lr
3534 STRBBui $wzr, $x0, 4 :: (store (s8))
3635 STURBBi $wzr, $x0, 5 :: (store (s8))
@@ -41,14 +40,56 @@ name: merge_unscaled_str_with_scaled_8
4140body : |
4241 bb.0.entry:
4342 ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_8
44- ; CHECK: STURBBi $wzr, $x0, 4 :: (store (s8))
45- ; CHECK-NEXT: STRBBui $wzr, $x0, 5 :: (store (s8))
43+ ; CHECK: STURHHi $wzr, $x0, 4 :: (store (s8))
4644 ; CHECK-NEXT: RET undef $lr
4745 STURBBi $wzr, $x0, 4 :: (store (s8))
4846 STRBBui $wzr, $x0, 5 :: (store (s8))
4947 RET undef $lr
5048 ...
5149---
50+ name : merge_unscaled_str_with_scaled_8_lower_address_second
51+ body : |
52+ bb.0.entry:
53+ ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_8_lower_address_second
54+ ; CHECK: STURHHi $wzr, $x0, 0 :: (store (s8))
55+ ; CHECK-NEXT: RET undef $lr
56+ STURBBi $wzr, $x0, 1 :: (store (s8))
57+ STRBBui $wzr, $x0, 0 :: (store (s8))
58+ RET undef $lr
59+ ...
60+ ---
61+ name : merge_scaled_str_with_unscaled_8_lower_address_second
62+ body : |
63+ bb.0.entry:
64+ ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_8_lower_address_second
65+ ; CHECK: STRHHui $wzr, $x0, 0 :: (store (s8))
66+ ; CHECK-NEXT: RET undef $lr
67+ STRBBui $wzr, $x0, 1 :: (store (s8))
68+ STURBBi $wzr, $x0, 0 :: (store (s8))
69+ RET undef $lr
70+ ...
71+ ---
72+ name : merge_unscaled_str_with_scaled_8_limits
73+ body : |
74+ bb.0.entry:
75+ ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_8_limits
76+ ; CHECK: STURHHi $wzr, $x0, 255 :: (store (s8))
77+ ; CHECK-NEXT: RET undef $lr
78+ STURBBi $wzr, $x0, 255 :: (store (s8))
79+ STRBBui $wzr, $x0, 256 :: (store (s8))
80+ RET undef $lr
81+ ---
82+ ---
83+ name : merge_scaled_str_with_unscaled_8_limits
84+ body : |
85+ bb.0.entry:
86+ ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_8_limits
87+ ; CHECK: STRHHui $wzr, $x0, 127 :: (store (s8))
88+ ; CHECK-NEXT: RET undef $lr
89+ STRBBui $wzr, $x0, 254 :: (store (s8))
90+ STURBBi $wzr, $x0, 255 :: (store (s8))
91+ RET undef $lr
92+ ---
5293name : merge_unscaled_str_with_unscaled_str_16
5394body : |
5495 bb.0:
@@ -75,8 +116,7 @@ name: merge_scaled_str_with_unscaled_16
75116body : |
76117 bb.0.entry:
77118 ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_16
78- ; CHECK: STRHHui $wzr, $x0, 2 :: (store (s16))
79- ; CHECK-NEXT: STURHHi $wzr, $x0, 6 :: (store (s16))
119+ ; CHECK: STRWui $wzr, $x0, 1 :: (store (s16))
80120 ; CHECK-NEXT: RET undef $lr
81121 STRHHui $wzr, $x0, 2 :: (store (s16))
82122 STURHHi $wzr, $x0, 6 :: (store (s16))
@@ -87,14 +127,56 @@ name: merge_unscaled_str_with_scaled_16
87127body : |
88128 bb.0.entry:
89129 ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_16
90- ; CHECK: STURHHi $wzr, $x0, 4 :: (store (s16))
91- ; CHECK-NEXT: STRHHui $wzr, $x0, 3 :: (store (s16))
130+ ; CHECK: STURWi $wzr, $x0, 4 :: (store (s16))
92131 ; CHECK-NEXT: RET undef $lr
93132 STURHHi $wzr, $x0, 4 :: (store (s16))
94133 STRHHui $wzr, $x0, 3 :: (store (s16))
95134 RET undef $lr
96135 ...
97136---
137+ name : merge_unscaled_str_with_scaled_16_lower_address_second
138+ body : |
139+ bb.0.entry:
140+ ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_16_lower_address_second
141+ ; CHECK: STURWi $wzr, $x0, 2 :: (store (s16))
142+ ; CHECK-NEXT: RET undef $lr
143+ STURHHi $wzr, $x0, 4 :: (store (s16))
144+ STRHHui $wzr, $x0, 1 :: (store (s16))
145+ RET undef $lr
146+ ...
147+ ---
148+ name : merge_scaled_str_with_unscaled_16_lower_address_second
149+ body : |
150+ bb.0.entry:
151+ ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_16_lower_address_second
152+ ; CHECK: STRWui $wzr, $x0, 0 :: (store (s16))
153+ ; CHECK-NEXT: RET undef $lr
154+ STRHHui $wzr, $x0, 1 :: (store (s16))
155+ STURHHi $wzr, $x0, 0 :: (store (s16))
156+ RET undef $lr
157+ ...
158+ ---
159+ name : merge_unscaled_str_with_scaled_16_limits
160+ body : |
161+ bb.0.entry:
162+ ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_16_limits
163+ ; CHECK: STURWi $wzr, $x0, 254 :: (store (s16))
164+ ; CHECK-NEXT: RET undef $lr
165+ STURHHi $wzr, $x0, 254 :: (store (s16))
166+ STRHHui $wzr, $x0, 128 :: (store (s16))
167+ RET undef $lr
168+ ---
169+ ---
170+ name : merge_scaled_str_with_unscaled_16_limits
171+ body : |
172+ bb.0.entry:
173+ ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_16_limits
174+ ; CHECK: STRWui $wzr, $x0, 63 :: (store (s16))
175+ ; CHECK-NEXT: RET undef $lr
176+ STRHHui $wzr, $x0, 126 :: (store (s16))
177+ STURHHi $wzr, $x0, 254 :: (store (s16))
178+ RET undef $lr
179+ ---
98180name : merge_unscaled_str_with_unscaled_32
99181body : |
100182 bb.0.entry:
0 commit comments