Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / AArch64 / str-narrow-zero-merge.mir
blobe995c402c50a8faa53bee3ee9acba48579f0b90e
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 2
2 # RUN: llc -mtriple=aarch64-linux-gnu -verify-machineinstrs -run-pass=aarch64-ldst-opt %s -o - | FileCheck %s
5 ---
6 name:  merge_unscaled_str_with_unscaled_str_8
7 body:             |
8   bb.0:
9     ; CHECK-LABEL: name: merge_unscaled_str_with_unscaled_str_8
10     ; CHECK: STURHHi $wzr, $x0, 4 :: (store (s8))
11     ; CHECK-NEXT: RET undef $lr
12     STURBBi $wzr, $x0, 4 :: (store (s8))
13     STURBBi $wzr, $x0, 5 :: (store (s8))
14     RET undef $lr
15 ...
16 ---
17 name:  merge_scaled_str_with_scaled_str_8
18 body:             |
19   bb.0.entry:
20     ; CHECK-LABEL: name: merge_scaled_str_with_scaled_str_8
21     ; CHECK: STRHHui $wzr, $x0, 2 :: (store (s8))
22     ; CHECK-NEXT: RET undef $lr
23     STRBBui $wzr, $x0, 4 :: (store (s8))
24     STRBBui $wzr, $x0, 5 :: (store (s8))
25     RET undef $lr
26 ...
27 ---
28 name:  merge_scaled_str_with_unscaled_8
29 body:             |
30   bb.0.entry:
31     ; 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))
34     ; CHECK-NEXT: RET undef $lr
35     STRBBui $wzr, $x0, 4 :: (store (s8))
36     STURBBi $wzr, $x0, 5 :: (store (s8))
37     RET undef $lr
38 ...
39 ---
40 name:  merge_unscaled_str_with_scaled_8
41 body:             |
42   bb.0.entry:
43     ; 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))
46     ; CHECK-NEXT: RET undef $lr
47     STURBBi $wzr, $x0, 4 :: (store (s8))
48     STRBBui $wzr, $x0, 5 :: (store (s8))
49     RET undef $lr
50 ...
51 ---
52 name:  merge_unscaled_str_with_unscaled_str_16
53 body:             |
54   bb.0:
55     ; CHECK-LABEL: name: merge_unscaled_str_with_unscaled_str_16
56     ; CHECK: STURWi $wzr, $x0, 4 :: (store (s16))
57     ; CHECK-NEXT: RET undef $lr
58     STURHHi $wzr, $x0, 4 :: (store (s16))
59     STURHHi $wzr, $x0, 6 :: (store (s16))
60     RET undef $lr
61 ...
62 ---
63 name:  merge_scaled_str_with_scaled_str_16
64 body:             |
65   bb.0.entry:
66     ; CHECK-LABEL: name: merge_scaled_str_with_scaled_str_16
67     ; CHECK: STRWui $wzr, $x0, 2 :: (store (s16))
68     ; CHECK-NEXT: RET undef $lr
69     STRHHui $wzr, $x0, 4 :: (store (s16))
70     STRHHui $wzr, $x0, 5 :: (store (s16))
71     RET undef $lr
72 ...
73 ---
74 name:  merge_scaled_str_with_unscaled_16
75 body:             |
76   bb.0.entry:
77     ; 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))
80     ; CHECK-NEXT: RET undef $lr
81     STRHHui $wzr, $x0, 2 :: (store (s16))
82     STURHHi $wzr, $x0, 6 :: (store (s16))
83     RET undef $lr
84 ...
85 ---
86 name:  merge_unscaled_str_with_scaled_16
87 body:             |
88   bb.0.entry:
89     ; 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))
92     ; CHECK-NEXT: RET undef $lr
93     STURHHi $wzr, $x0, 4 :: (store (s16))
94     STRHHui $wzr, $x0, 3 :: (store (s16))
95     RET undef $lr
96 ...
97 ---
98 name:  merge_unscaled_str_with_unscaled_32
99 body:             |
100   bb.0.entry:
101     ; CHECK-LABEL: name: merge_unscaled_str_with_unscaled_32
102     ; CHECK: STURXi $xzr, $x0, 4 :: (store (s32))
103     ; CHECK-NEXT: RET undef $lr
104     STURWi $wzr, $x0, 4 :: (store (s32))
105     STURWi $wzr, $x0, 8 :: (store (s32))
106     RET undef $lr
109 name:  merge_scaled_str_with_scaled_32
110 body:             |
111   bb.0.entry:
112     ; CHECK-LABEL: name: merge_scaled_str_with_scaled_32
113     ; CHECK: STRXui $xzr, $x0, 1 :: (store (s32))
114     ; CHECK-NEXT: RET undef $lr
115     STRWui $wzr, $x0, 2 :: (store (s32))
116     STRWui $wzr, $x0, 3 :: (store (s32))
117     RET undef $lr
120 name:  merge_scaled_str_with_unscaled_32
121 body:             |
122   bb.0.entry:
123     ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_32
124     ; CHECK: STRXui $xzr, $x0, 1 :: (store (s32))
125     ; CHECK-NEXT: RET undef $lr
126     STRWui $wzr, $x0, 2 :: (store (s32))
127     STURWi $wzr, $x0, 12 :: (store (s32))
128     RET undef $lr
131 name:  merge_unscaled_str_with_scaled_32
132 body:             |
133   bb.0.entry:
134     ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_32
135     ; CHECK: STURXi $xzr, $x0, 8 :: (store (s32))
136     ; CHECK-NEXT: RET undef $lr
137     STURWi $wzr, $x0, 8 :: (store (s32))
138     STRWui $wzr, $x0, 3 :: (store (s32))
139     RET undef $lr
142 name:  merge_scaled_str_with_unscaled_32_lower_address_second
143 body:             |
144   bb.0.entry:
145     ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_32_lower_address_second
146     ; CHECK: STRXui $xzr, $x0, 1 :: (store (s32))
147     ; CHECK-NEXT: RET undef $lr
148     STRWui $wzr, $x0, 3 :: (store (s32))
149     STURWi $wzr, $x0, 8 :: (store (s32))
150     RET undef $lr
153 name:  merge_unscaled_str_with_scaled_32_lower_address_second
154 body:             |
155   bb.0.entry:
156     ; CHECK-LABEL: name: merge_unscaled_str_with_scaled_32_lower_address_second
157     ; CHECK: STURXi $xzr, $x0, 4 :: (store (s32))
158     ; CHECK-NEXT: RET undef $lr
159     STURWi $wzr, $x0, 8 :: (store (s32))
160     STRWui $wzr, $x0, 1 :: (store (s32))
161     RET undef $lr
164 name:  merge_scaled_str_with_unscaled_32_negative_address
165 body:             |
166   bb.0.entry:
167     ; CHECK-LABEL: name: merge_scaled_str_with_unscaled_32_negative_address
168     ; CHECK: STPWi $wzr, $wzr, $x0, -1 :: (store (s32))
169     ; CHECK-NEXT: RET undef $lr
170     STRWui $wzr, $x0, 0 :: (store (s32))
171     STURWi $wzr, $x0, -4 :: (store (s32))
172     RET undef $lr