9
9
// CHECK-NEXT: [[TMP0:%.*]] = call { <4 x i32>, i32 } @llvm.arm.mve.vadc.v4i32(<4 x i32> [[A:%.*]], <4 x i32> [[B:%.*]], i32 0)
10
10
// CHECK-NEXT: [[TMP1:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP0]], 1
11
11
// CHECK-NEXT: [[TMP2:%.*]] = lshr i32 [[TMP1]], 29
12
- // CHECK-NEXT: [[TMP3:%.*]] = and i32 [[TMP2]], 1
12
+ // CHECK-NEXT: [[TMP3:%.*]] = and i32 1, [[TMP2]]
13
13
// CHECK-NEXT: store i32 [[TMP3]], i32* [[CARRY_OUT:%.*]], align 4
14
14
// CHECK-NEXT: [[TMP4:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP0]], 0
15
15
// CHECK-NEXT: ret <4 x i32> [[TMP4]]
@@ -30,7 +30,7 @@ int32x4_t test_vadciq_s32(int32x4_t a, int32x4_t b, unsigned *carry_out)
30
30
// CHECK-NEXT: [[TMP2:%.*]] = call { <4 x i32>, i32 } @llvm.arm.mve.vadc.v4i32(<4 x i32> [[A:%.*]], <4 x i32> [[B:%.*]], i32 [[TMP1]])
31
31
// CHECK-NEXT: [[TMP3:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP2]], 1
32
32
// CHECK-NEXT: [[TMP4:%.*]] = lshr i32 [[TMP3]], 29
33
- // CHECK-NEXT: [[TMP5:%.*]] = and i32 [[TMP4]], 1
33
+ // CHECK-NEXT: [[TMP5:%.*]] = and i32 1, [[TMP4]]
34
34
// CHECK-NEXT: store i32 [[TMP5]], i32* [[CARRY]], align 4
35
35
// CHECK-NEXT: [[TMP6:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP2]], 0
36
36
// CHECK-NEXT: ret <4 x i32> [[TMP6]]
@@ -51,7 +51,7 @@ uint32x4_t test_vadcq_u32(uint32x4_t a, uint32x4_t b, unsigned *carry)
51
51
// CHECK-NEXT: [[TMP2:%.*]] = call { <4 x i32>, i32 } @llvm.arm.mve.vadc.predicated.v4i32.v4i1(<4 x i32> [[INACTIVE:%.*]], <4 x i32> [[A:%.*]], <4 x i32> [[B:%.*]], i32 0, <4 x i1> [[TMP1]])
52
52
// CHECK-NEXT: [[TMP3:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP2]], 1
53
53
// CHECK-NEXT: [[TMP4:%.*]] = lshr i32 [[TMP3]], 29
54
- // CHECK-NEXT: [[TMP5:%.*]] = and i32 [[TMP4]], 1
54
+ // CHECK-NEXT: [[TMP5:%.*]] = and i32 1, [[TMP4]]
55
55
// CHECK-NEXT: store i32 [[TMP5]], i32* [[CARRY_OUT:%.*]], align 4
56
56
// CHECK-NEXT: [[TMP6:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP2]], 0
57
57
// CHECK-NEXT: ret <4 x i32> [[TMP6]]
@@ -74,7 +74,7 @@ uint32x4_t test_vadciq_m_u32(uint32x4_t inactive, uint32x4_t a, uint32x4_t b, un
74
74
// CHECK-NEXT: [[TMP4:%.*]] = call { <4 x i32>, i32 } @llvm.arm.mve.vadc.predicated.v4i32.v4i1(<4 x i32> [[INACTIVE:%.*]], <4 x i32> [[A:%.*]], <4 x i32> [[B:%.*]], i32 [[TMP1]], <4 x i1> [[TMP3]])
75
75
// CHECK-NEXT: [[TMP5:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP4]], 1
76
76
// CHECK-NEXT: [[TMP6:%.*]] = lshr i32 [[TMP5]], 29
77
- // CHECK-NEXT: [[TMP7:%.*]] = and i32 [[TMP6]], 1
77
+ // CHECK-NEXT: [[TMP7:%.*]] = and i32 1, [[TMP6]]
78
78
// CHECK-NEXT: store i32 [[TMP7]], i32* [[CARRY]], align 4
79
79
// CHECK-NEXT: [[TMP8:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP4]], 0
80
80
// CHECK-NEXT: ret <4 x i32> [[TMP8]]
@@ -93,7 +93,7 @@ int32x4_t test_vadcq_m_s32(int32x4_t inactive, int32x4_t a, int32x4_t b, unsigne
93
93
// CHECK-NEXT: [[TMP0:%.*]] = call { <4 x i32>, i32 } @llvm.arm.mve.vsbc.v4i32(<4 x i32> [[A:%.*]], <4 x i32> [[B:%.*]], i32 0)
94
94
// CHECK-NEXT: [[TMP1:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP0]], 1
95
95
// CHECK-NEXT: [[TMP2:%.*]] = lshr i32 [[TMP1]], 29
96
- // CHECK-NEXT: [[TMP3:%.*]] = and i32 [[TMP2]], 1
96
+ // CHECK-NEXT: [[TMP3:%.*]] = and i32 1, [[TMP2]]
97
97
// CHECK-NEXT: store i32 [[TMP3]], i32* [[CARRY_OUT:%.*]], align 4
98
98
// CHECK-NEXT: [[TMP4:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP0]], 0
99
99
// CHECK-NEXT: ret <4 x i32> [[TMP4]]
@@ -111,7 +111,7 @@ int32x4_t test_vsbciq_s32(int32x4_t a, int32x4_t b, unsigned *carry_out) {
111
111
// CHECK-NEXT: [[TMP0:%.*]] = call { <4 x i32>, i32 } @llvm.arm.mve.vsbc.v4i32(<4 x i32> [[A:%.*]], <4 x i32> [[B:%.*]], i32 0)
112
112
// CHECK-NEXT: [[TMP1:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP0]], 1
113
113
// CHECK-NEXT: [[TMP2:%.*]] = lshr i32 [[TMP1]], 29
114
- // CHECK-NEXT: [[TMP3:%.*]] = and i32 [[TMP2]], 1
114
+ // CHECK-NEXT: [[TMP3:%.*]] = and i32 1, [[TMP2]]
115
115
// CHECK-NEXT: store i32 [[TMP3]], i32* [[CARRY_OUT:%.*]], align 4
116
116
// CHECK-NEXT: [[TMP4:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP0]], 0
117
117
// CHECK-NEXT: ret <4 x i32> [[TMP4]]
@@ -131,7 +131,7 @@ uint32x4_t test_vsbciq_u32(uint32x4_t a, uint32x4_t b, unsigned *carry_out) {
131
131
// CHECK-NEXT: [[TMP2:%.*]] = call { <4 x i32>, i32 } @llvm.arm.mve.vsbc.v4i32(<4 x i32> [[A:%.*]], <4 x i32> [[B:%.*]], i32 [[TMP1]])
132
132
// CHECK-NEXT: [[TMP3:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP2]], 1
133
133
// CHECK-NEXT: [[TMP4:%.*]] = lshr i32 [[TMP3]], 29
134
- // CHECK-NEXT: [[TMP5:%.*]] = and i32 [[TMP4]], 1
134
+ // CHECK-NEXT: [[TMP5:%.*]] = and i32 1, [[TMP4]]
135
135
// CHECK-NEXT: store i32 [[TMP5]], i32* [[CARRY]], align 4
136
136
// CHECK-NEXT: [[TMP6:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP2]], 0
137
137
// CHECK-NEXT: ret <4 x i32> [[TMP6]]
@@ -151,7 +151,7 @@ int32x4_t test_vsbcq_s32(int32x4_t a, int32x4_t b, unsigned *carry) {
151
151
// CHECK-NEXT: [[TMP2:%.*]] = call { <4 x i32>, i32 } @llvm.arm.mve.vsbc.v4i32(<4 x i32> [[A:%.*]], <4 x i32> [[B:%.*]], i32 [[TMP1]])
152
152
// CHECK-NEXT: [[TMP3:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP2]], 1
153
153
// CHECK-NEXT: [[TMP4:%.*]] = lshr i32 [[TMP3]], 29
154
- // CHECK-NEXT: [[TMP5:%.*]] = and i32 [[TMP4]], 1
154
+ // CHECK-NEXT: [[TMP5:%.*]] = and i32 1, [[TMP4]]
155
155
// CHECK-NEXT: store i32 [[TMP5]], i32* [[CARRY]], align 4
156
156
// CHECK-NEXT: [[TMP6:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP2]], 0
157
157
// CHECK-NEXT: ret <4 x i32> [[TMP6]]
@@ -171,7 +171,7 @@ uint32x4_t test_vsbcq_u32(uint32x4_t a, uint32x4_t b, unsigned *carry) {
171
171
// CHECK-NEXT: [[TMP2:%.*]] = call { <4 x i32>, i32 } @llvm.arm.mve.vsbc.predicated.v4i32.v4i1(<4 x i32> [[INACTIVE:%.*]], <4 x i32> [[A:%.*]], <4 x i32> [[B:%.*]], i32 0, <4 x i1> [[TMP1]])
172
172
// CHECK-NEXT: [[TMP3:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP2]], 1
173
173
// CHECK-NEXT: [[TMP4:%.*]] = lshr i32 [[TMP3]], 29
174
- // CHECK-NEXT: [[TMP5:%.*]] = and i32 [[TMP4]], 1
174
+ // CHECK-NEXT: [[TMP5:%.*]] = and i32 1, [[TMP4]]
175
175
// CHECK-NEXT: store i32 [[TMP5]], i32* [[CARRY_OUT:%.*]], align 4
176
176
// CHECK-NEXT: [[TMP6:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP2]], 0
177
177
// CHECK-NEXT: ret <4 x i32> [[TMP6]]
@@ -191,7 +191,7 @@ int32x4_t test_vsbciq_m_s32(int32x4_t inactive, int32x4_t a, int32x4_t b, unsign
191
191
// CHECK-NEXT: [[TMP2:%.*]] = call { <4 x i32>, i32 } @llvm.arm.mve.vsbc.predicated.v4i32.v4i1(<4 x i32> [[INACTIVE:%.*]], <4 x i32> [[A:%.*]], <4 x i32> [[B:%.*]], i32 0, <4 x i1> [[TMP1]])
192
192
// CHECK-NEXT: [[TMP3:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP2]], 1
193
193
// CHECK-NEXT: [[TMP4:%.*]] = lshr i32 [[TMP3]], 29
194
- // CHECK-NEXT: [[TMP5:%.*]] = and i32 [[TMP4]], 1
194
+ // CHECK-NEXT: [[TMP5:%.*]] = and i32 1, [[TMP4]]
195
195
// CHECK-NEXT: store i32 [[TMP5]], i32* [[CARRY_OUT:%.*]], align 4
196
196
// CHECK-NEXT: [[TMP6:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP2]], 0
197
197
// CHECK-NEXT: ret <4 x i32> [[TMP6]]
@@ -213,7 +213,7 @@ uint32x4_t test_vsbciq_m_u32(uint32x4_t inactive, uint32x4_t a, uint32x4_t b, un
213
213
// CHECK-NEXT: [[TMP4:%.*]] = call { <4 x i32>, i32 } @llvm.arm.mve.vsbc.predicated.v4i32.v4i1(<4 x i32> [[INACTIVE:%.*]], <4 x i32> [[A:%.*]], <4 x i32> [[B:%.*]], i32 [[TMP1]], <4 x i1> [[TMP3]])
214
214
// CHECK-NEXT: [[TMP5:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP4]], 1
215
215
// CHECK-NEXT: [[TMP6:%.*]] = lshr i32 [[TMP5]], 29
216
- // CHECK-NEXT: [[TMP7:%.*]] = and i32 [[TMP6]], 1
216
+ // CHECK-NEXT: [[TMP7:%.*]] = and i32 1, [[TMP6]]
217
217
// CHECK-NEXT: store i32 [[TMP7]], i32* [[CARRY]], align 4
218
218
// CHECK-NEXT: [[TMP8:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP4]], 0
219
219
// CHECK-NEXT: ret <4 x i32> [[TMP8]]
@@ -235,7 +235,7 @@ int32x4_t test_vsbcq_m_s32(int32x4_t inactive, int32x4_t a, int32x4_t b, unsigne
235
235
// CHECK-NEXT: [[TMP4:%.*]] = call { <4 x i32>, i32 } @llvm.arm.mve.vsbc.predicated.v4i32.v4i1(<4 x i32> [[INACTIVE:%.*]], <4 x i32> [[A:%.*]], <4 x i32> [[B:%.*]], i32 [[TMP1]], <4 x i1> [[TMP3]])
236
236
// CHECK-NEXT: [[TMP5:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP4]], 1
237
237
// CHECK-NEXT: [[TMP6:%.*]] = lshr i32 [[TMP5]], 29
238
- // CHECK-NEXT: [[TMP7:%.*]] = and i32 [[TMP6]], 1
238
+ // CHECK-NEXT: [[TMP7:%.*]] = and i32 1, [[TMP6]]
239
239
// CHECK-NEXT: store i32 [[TMP7]], i32* [[CARRY]], align 4
240
240
// CHECK-NEXT: [[TMP8:%.*]] = extractvalue { <4 x i32>, i32 } [[TMP4]], 0
241
241
// CHECK-NEXT: ret <4 x i32> [[TMP8]]
0 commit comments