13
13
// CHECK-LABEL: test_vqrdmlah_s16
14
14
int16x4_t test_vqrdmlah_s16 (int16x4_t a , int16x4_t b , int16x4_t c ) {
15
15
// CHECK-ARM: call <4 x i16> @llvm.arm.neon.vqrdmulh.v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
16
- // CHECK-ARM: call <4 x i16> @llvm.arm.neon.vqadds .v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
16
+ // CHECK-ARM: call <4 x i16> @llvm.sadd.sat .v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
17
17
18
18
// CHECK-AARCH64: call <4 x i16> @llvm.aarch64.neon.sqrdmulh.v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
19
19
// CHECK-AARCH64: call <4 x i16> @llvm.aarch64.neon.sqadd.v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
@@ -23,7 +23,7 @@ int16x4_t test_vqrdmlah_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
23
23
// CHECK-LABEL: test_vqrdmlah_s32
24
24
int32x2_t test_vqrdmlah_s32 (int32x2_t a , int32x2_t b , int32x2_t c ) {
25
25
// CHECK-ARM: call <2 x i32> @llvm.arm.neon.vqrdmulh.v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
26
- // CHECK-ARM: call <2 x i32> @llvm.arm.neon.vqadds .v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
26
+ // CHECK-ARM: call <2 x i32> @llvm.sadd.sat .v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
27
27
28
28
// CHECK-AARCH64: call <2 x i32> @llvm.aarch64.neon.sqrdmulh.v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
29
29
// CHECK-AARCH64: call <2 x i32> @llvm.aarch64.neon.sqadd.v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
@@ -33,7 +33,7 @@ int32x2_t test_vqrdmlah_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
33
33
// CHECK-LABEL: test_vqrdmlahq_s16
34
34
int16x8_t test_vqrdmlahq_s16 (int16x8_t a , int16x8_t b , int16x8_t c ) {
35
35
// CHECK-ARM: call <8 x i16> @llvm.arm.neon.vqrdmulh.v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
36
- // CHECK-ARM: call <8 x i16> @llvm.arm.neon.vqadds .v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
36
+ // CHECK-ARM: call <8 x i16> @llvm.sadd.sat .v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
37
37
38
38
// CHECK-AARCH64: call <8 x i16> @llvm.aarch64.neon.sqrdmulh.v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
39
39
// CHECK-AARCH64: call <8 x i16> @llvm.aarch64.neon.sqadd.v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
@@ -43,7 +43,7 @@ int16x8_t test_vqrdmlahq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
43
43
// CHECK-LABEL: test_vqrdmlahq_s32
44
44
int32x4_t test_vqrdmlahq_s32 (int32x4_t a , int32x4_t b , int32x4_t c ) {
45
45
// CHECK-ARM: call <4 x i32> @llvm.arm.neon.vqrdmulh.v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
46
- // CHECK-ARM: call <4 x i32> @llvm.arm.neon.vqadds .v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
46
+ // CHECK-ARM: call <4 x i32> @llvm.sadd.sat .v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
47
47
48
48
// CHECK-AARCH64: call <4 x i32> @llvm.aarch64.neon.sqrdmulh.v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
49
49
// CHECK-AARCH64: call <4 x i32> @llvm.aarch64.neon.sqadd.v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
@@ -54,7 +54,7 @@ int32x4_t test_vqrdmlahq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
54
54
int16x4_t test_vqrdmlah_lane_s16 (int16x4_t a , int16x4_t b , int16x4_t c ) {
55
55
// CHECK-ARM: shufflevector <4 x i16> {{%.*}}, <4 x i16> {{%.*}}, <4 x i32> <i32 3, i32 3, i32 3, i32 3>
56
56
// CHECK-ARM: call <4 x i16> @llvm.arm.neon.vqrdmulh.v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
57
- // CHECK-ARM: call <4 x i16> @llvm.arm.neon.vqadds .v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
57
+ // CHECK-ARM: call <4 x i16> @llvm.sadd.sat .v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
58
58
59
59
// CHECK-AARCH64: shufflevector <4 x i16> {{%.*}}, <4 x i16> {{%.*}}, <4 x i32> <i32 3, i32 3, i32 3, i32 3>
60
60
// CHECK-AARCH64: call <4 x i16> @llvm.aarch64.neon.sqrdmulh.v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
@@ -66,7 +66,7 @@ int16x4_t test_vqrdmlah_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
66
66
int32x2_t test_vqrdmlah_lane_s32 (int32x2_t a , int32x2_t b , int32x2_t c ) {
67
67
// CHECK-ARM: shufflevector <2 x i32> {{%.*}}, <2 x i32> {{%.*}}, <2 x i32> <i32 1, i32 1>
68
68
// CHECK-ARM: call <2 x i32> @llvm.arm.neon.vqrdmulh.v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
69
- // CHECK-ARM: call <2 x i32> @llvm.arm.neon.vqadds .v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
69
+ // CHECK-ARM: call <2 x i32> @llvm.sadd.sat .v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
70
70
71
71
// CHECK-AARCH64: shufflevector <2 x i32> {{%.*}}, <2 x i32> {{%.*}}, <2 x i32> <i32 1, i32 1>
72
72
// CHECK-AARCH64: call <2 x i32> @llvm.aarch64.neon.sqrdmulh.v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
@@ -78,7 +78,7 @@ int32x2_t test_vqrdmlah_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
78
78
int16x8_t test_vqrdmlahq_lane_s16 (int16x8_t a , int16x8_t b , int16x4_t c ) {
79
79
// CHECK-ARM: shufflevector <4 x i16> {{%.*}}, <4 x i16> {{%.*}}, <8 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
80
80
// CHECK-ARM: call <8 x i16> @llvm.arm.neon.vqrdmulh.v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
81
- // CHECK-ARM: call <8 x i16> @llvm.arm.neon.vqadds .v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
81
+ // CHECK-ARM: call <8 x i16> @llvm.sadd.sat .v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
82
82
83
83
// CHECK-AARCH64: shufflevector <4 x i16> {{%.*}}, <4 x i16> {{%.*}}, <8 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
84
84
// CHECK-AARCH64: call <8 x i16> @llvm.aarch64.neon.sqrdmulh.v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
@@ -90,7 +90,7 @@ int16x8_t test_vqrdmlahq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) {
90
90
int32x4_t test_vqrdmlahq_lane_s32 (int32x4_t a , int32x4_t b , int32x2_t c ) {
91
91
// CHECK-ARM: shufflevector <2 x i32> {{%.*}}, <2 x i32> {{%.*}}, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
92
92
// CHECK-ARM: call <4 x i32> @llvm.arm.neon.vqrdmulh.v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
93
- // CHECK-ARM: call <4 x i32> @llvm.arm.neon.vqadds .v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
93
+ // CHECK-ARM: call <4 x i32> @llvm.sadd.sat .v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
94
94
95
95
// CHECK-AARCH64: shufflevector <2 x i32> {{%.*}}, <2 x i32> {{%.*}}, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
96
96
// CHECK-AARCH64: call <4 x i32> @llvm.aarch64.neon.sqrdmulh.v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
@@ -101,7 +101,7 @@ int32x4_t test_vqrdmlahq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) {
101
101
// CHECK-LABEL: test_vqrdmlsh_s16
102
102
int16x4_t test_vqrdmlsh_s16 (int16x4_t a , int16x4_t b , int16x4_t c ) {
103
103
// CHECK-ARM: call <4 x i16> @llvm.arm.neon.vqrdmulh.v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
104
- // CHECK-ARM: call <4 x i16> @llvm.arm.neon.vqsubs .v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
104
+ // CHECK-ARM: call <4 x i16> @llvm.ssub.sat .v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
105
105
106
106
// CHECK-AARCH64: call <4 x i16> @llvm.aarch64.neon.sqrdmulh.v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
107
107
// CHECK-AARCH64: call <4 x i16> @llvm.aarch64.neon.sqsub.v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
@@ -111,7 +111,7 @@ int16x4_t test_vqrdmlsh_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
111
111
// CHECK-LABEL: test_vqrdmlsh_s32
112
112
int32x2_t test_vqrdmlsh_s32 (int32x2_t a , int32x2_t b , int32x2_t c ) {
113
113
// CHECK-ARM: call <2 x i32> @llvm.arm.neon.vqrdmulh.v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
114
- // CHECK-ARM: call <2 x i32> @llvm.arm.neon.vqsubs .v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
114
+ // CHECK-ARM: call <2 x i32> @llvm.ssub.sat .v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
115
115
116
116
// CHECK-AARCH64: call <2 x i32> @llvm.aarch64.neon.sqrdmulh.v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
117
117
// CHECK-AARCH64: call <2 x i32> @llvm.aarch64.neon.sqsub.v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
@@ -121,7 +121,7 @@ int32x2_t test_vqrdmlsh_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
121
121
// CHECK-LABEL: test_vqrdmlshq_s16
122
122
int16x8_t test_vqrdmlshq_s16 (int16x8_t a , int16x8_t b , int16x8_t c ) {
123
123
// CHECK-ARM: call <8 x i16> @llvm.arm.neon.vqrdmulh.v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
124
- // CHECK-ARM: call <8 x i16> @llvm.arm.neon.vqsubs .v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
124
+ // CHECK-ARM: call <8 x i16> @llvm.ssub.sat .v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
125
125
126
126
// CHECK-AARCH64: call <8 x i16> @llvm.aarch64.neon.sqrdmulh.v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
127
127
// CHECK-AARCH64: call <8 x i16> @llvm.aarch64.neon.sqsub.v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
@@ -131,7 +131,7 @@ int16x8_t test_vqrdmlshq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
131
131
// CHECK-LABEL: test_vqrdmlshq_s32
132
132
int32x4_t test_vqrdmlshq_s32 (int32x4_t a , int32x4_t b , int32x4_t c ) {
133
133
// CHECK-ARM: call <4 x i32> @llvm.arm.neon.vqrdmulh.v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
134
- // CHECK-ARM: call <4 x i32> @llvm.arm.neon.vqsubs .v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
134
+ // CHECK-ARM: call <4 x i32> @llvm.ssub.sat .v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
135
135
136
136
// CHECK-AARCH64: call <4 x i32> @llvm.aarch64.neon.sqrdmulh.v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
137
137
// CHECK-AARCH64: call <4 x i32> @llvm.aarch64.neon.sqsub.v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
@@ -142,7 +142,7 @@ int32x4_t test_vqrdmlshq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
142
142
int16x4_t test_vqrdmlsh_lane_s16 (int16x4_t a , int16x4_t b , int16x4_t c ) {
143
143
// CHECK-ARM: shufflevector <4 x i16> {{%.*}}, <4 x i16> {{%.*}}, <4 x i32> <i32 3, i32 3, i32 3, i32 3>
144
144
// CHECK-ARM: call <4 x i16> @llvm.arm.neon.vqrdmulh.v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
145
- // CHECK-ARM: call <4 x i16> @llvm.arm.neon.vqsubs .v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
145
+ // CHECK-ARM: call <4 x i16> @llvm.ssub.sat .v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
146
146
147
147
// CHECK-AARCH64: shufflevector <4 x i16> {{%.*}}, <4 x i16> {{%.*}}, <4 x i32> <i32 3, i32 3, i32 3, i32 3>
148
148
// CHECK-AARCH64: call <4 x i16> @llvm.aarch64.neon.sqrdmulh.v4i16(<4 x i16> {{%.*}}, <4 x i16> {{%.*}})
@@ -154,7 +154,7 @@ int16x4_t test_vqrdmlsh_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
154
154
int32x2_t test_vqrdmlsh_lane_s32 (int32x2_t a , int32x2_t b , int32x2_t c ) {
155
155
// CHECK-ARM: shufflevector <2 x i32> {{%.*}}, <2 x i32> {{%.*}}, <2 x i32> <i32 1, i32 1>
156
156
// CHECK-ARM: call <2 x i32> @llvm.arm.neon.vqrdmulh.v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
157
- // CHECK-ARM: call <2 x i32> @llvm.arm.neon.vqsubs .v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
157
+ // CHECK-ARM: call <2 x i32> @llvm.ssub.sat .v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
158
158
159
159
// CHECK-AARCH64: shufflevector <2 x i32> {{%.*}}, <2 x i32> {{%.*}}, <2 x i32> <i32 1, i32 1>
160
160
// CHECK-AARCH64: call <2 x i32> @llvm.aarch64.neon.sqrdmulh.v2i32(<2 x i32> {{%.*}}, <2 x i32> {{%.*}})
@@ -166,7 +166,7 @@ int32x2_t test_vqrdmlsh_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
166
166
int16x8_t test_vqrdmlshq_lane_s16 (int16x8_t a , int16x8_t b , int16x4_t c ) {
167
167
// CHECK-ARM: shufflevector <4 x i16> {{%.*}}, <4 x i16> {{%.*}}, <8 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
168
168
// CHECK-ARM: call <8 x i16> @llvm.arm.neon.vqrdmulh.v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
169
- // CHECK-ARM: call <8 x i16> @llvm.arm.neon.vqsubs .v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
169
+ // CHECK-ARM: call <8 x i16> @llvm.ssub.sat .v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
170
170
171
171
// CHECK-AARCH64: shufflevector <4 x i16> {{%.*}}, <4 x i16> {{%.*}}, <8 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
172
172
// CHECK-AARCH64: call <8 x i16> @llvm.aarch64.neon.sqrdmulh.v8i16(<8 x i16> {{%.*}}, <8 x i16> {{%.*}})
@@ -178,7 +178,7 @@ int16x8_t test_vqrdmlshq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) {
178
178
int32x4_t test_vqrdmlshq_lane_s32 (int32x4_t a , int32x4_t b , int32x2_t c ) {
179
179
// CHECK-ARM: shufflevector <2 x i32> {{%.*}}, <2 x i32> {{%.*}}, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
180
180
// CHECK-ARM: call <4 x i32> @llvm.arm.neon.vqrdmulh.v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
181
- // CHECK-ARM: call <4 x i32> @llvm.arm.neon.vqsubs .v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
181
+ // CHECK-ARM: call <4 x i32> @llvm.ssub.sat .v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
182
182
183
183
// CHECK-AARCH64: shufflevector <2 x i32> {{%.*}}, <2 x i32> {{%.*}}, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
184
184
// CHECK-AARCH64: call <4 x i32> @llvm.aarch64.neon.sqrdmulh.v4i32(<4 x i32> {{%.*}}, <4 x i32> {{%.*}})
0 commit comments