@@ -1086,7 +1086,7 @@ uint16x8_t test_vqrshrntq_m_n_u32(uint16x8_t a, uint32x4_t b, mve_pred16_t p)
1086
1086
1087
1087
// CHECK-LABEL: @test_vqrshrunbq_n_s16(
1088
1088
// CHECK-NEXT: entry:
1089
- // CHECK-NEXT: [[TMP0:%.*]] = call <16 x i8> @llvm.arm.mve.vshrn.v16i8.v8i16(<16 x i8> [[A:%.*]], <8 x i16> [[B:%.*]], i32 7, i32 1, i32 0 , i32 1, i32 0, i32 0)
1089
+ // CHECK-NEXT: [[TMP0:%.*]] = call <16 x i8> @llvm.arm.mve.vshrn.v16i8.v8i16(<16 x i8> [[A:%.*]], <8 x i16> [[B:%.*]], i32 7, i32 1, i32 1 , i32 1, i32 0, i32 0)
1090
1090
// CHECK-NEXT: ret <16 x i8> [[TMP0]]
1091
1091
//
1092
1092
uint8x16_t test_vqrshrunbq_n_s16 (uint8x16_t a , int16x8_t b )
@@ -1100,7 +1100,7 @@ uint8x16_t test_vqrshrunbq_n_s16(uint8x16_t a, int16x8_t b)
1100
1100
1101
1101
// CHECK-LABEL: @test_vqrshrunbq_n_s32(
1102
1102
// CHECK-NEXT: entry:
1103
- // CHECK-NEXT: [[TMP0:%.*]] = call <8 x i16> @llvm.arm.mve.vshrn.v8i16.v4i32(<8 x i16> [[A:%.*]], <4 x i32> [[B:%.*]], i32 1, i32 1, i32 0 , i32 1, i32 0, i32 0)
1103
+ // CHECK-NEXT: [[TMP0:%.*]] = call <8 x i16> @llvm.arm.mve.vshrn.v8i16.v4i32(<8 x i16> [[A:%.*]], <4 x i32> [[B:%.*]], i32 1, i32 1, i32 1 , i32 1, i32 0, i32 0)
1104
1104
// CHECK-NEXT: ret <8 x i16> [[TMP0]]
1105
1105
//
1106
1106
uint16x8_t test_vqrshrunbq_n_s32 (uint16x8_t a , int32x4_t b )
@@ -1114,7 +1114,7 @@ uint16x8_t test_vqrshrunbq_n_s32(uint16x8_t a, int32x4_t b)
1114
1114
1115
1115
// CHECK-LABEL: @test_vqrshruntq_n_s16(
1116
1116
// CHECK-NEXT: entry:
1117
- // CHECK-NEXT: [[TMP0:%.*]] = call <16 x i8> @llvm.arm.mve.vshrn.v16i8.v8i16(<16 x i8> [[A:%.*]], <8 x i16> [[B:%.*]], i32 1, i32 1, i32 0 , i32 1, i32 0, i32 1)
1117
+ // CHECK-NEXT: [[TMP0:%.*]] = call <16 x i8> @llvm.arm.mve.vshrn.v16i8.v8i16(<16 x i8> [[A:%.*]], <8 x i16> [[B:%.*]], i32 1, i32 1, i32 1 , i32 1, i32 0, i32 1)
1118
1118
// CHECK-NEXT: ret <16 x i8> [[TMP0]]
1119
1119
//
1120
1120
uint8x16_t test_vqrshruntq_n_s16 (uint8x16_t a , int16x8_t b )
@@ -1128,7 +1128,7 @@ uint8x16_t test_vqrshruntq_n_s16(uint8x16_t a, int16x8_t b)
1128
1128
1129
1129
// CHECK-LABEL: @test_vqrshruntq_n_s32(
1130
1130
// CHECK-NEXT: entry:
1131
- // CHECK-NEXT: [[TMP0:%.*]] = call <8 x i16> @llvm.arm.mve.vshrn.v8i16.v4i32(<8 x i16> [[A:%.*]], <4 x i32> [[B:%.*]], i32 3, i32 1, i32 0 , i32 1, i32 0, i32 1)
1131
+ // CHECK-NEXT: [[TMP0:%.*]] = call <8 x i16> @llvm.arm.mve.vshrn.v8i16.v4i32(<8 x i16> [[A:%.*]], <4 x i32> [[B:%.*]], i32 3, i32 1, i32 1 , i32 1, i32 0, i32 1)
1132
1132
// CHECK-NEXT: ret <8 x i16> [[TMP0]]
1133
1133
//
1134
1134
uint16x8_t test_vqrshruntq_n_s32 (uint16x8_t a , int32x4_t b )
@@ -1144,7 +1144,7 @@ uint16x8_t test_vqrshruntq_n_s32(uint16x8_t a, int32x4_t b)
1144
1144
// CHECK-NEXT: entry:
1145
1145
// CHECK-NEXT: [[TMP0:%.*]] = zext i16 [[P:%.*]] to i32
1146
1146
// CHECK-NEXT: [[TMP1:%.*]] = call <8 x i1> @llvm.arm.mve.pred.i2v.v8i1(i32 [[TMP0]])
1147
- // CHECK-NEXT: [[TMP2:%.*]] = call <16 x i8> @llvm.arm.mve.vshrn.predicated.v16i8.v8i16.v8i1(<16 x i8> [[A:%.*]], <8 x i16> [[B:%.*]], i32 4, i32 1, i32 0 , i32 1, i32 0, i32 0, <8 x i1> [[TMP1]])
1147
+ // CHECK-NEXT: [[TMP2:%.*]] = call <16 x i8> @llvm.arm.mve.vshrn.predicated.v16i8.v8i16.v8i1(<16 x i8> [[A:%.*]], <8 x i16> [[B:%.*]], i32 4, i32 1, i32 1 , i32 1, i32 0, i32 0, <8 x i1> [[TMP1]])
1148
1148
// CHECK-NEXT: ret <16 x i8> [[TMP2]]
1149
1149
//
1150
1150
uint8x16_t test_vqrshrunbq_m_n_s16 (uint8x16_t a , int16x8_t b , mve_pred16_t p )
@@ -1160,7 +1160,7 @@ uint8x16_t test_vqrshrunbq_m_n_s16(uint8x16_t a, int16x8_t b, mve_pred16_t p)
1160
1160
// CHECK-NEXT: entry:
1161
1161
// CHECK-NEXT: [[TMP0:%.*]] = zext i16 [[P:%.*]] to i32
1162
1162
// CHECK-NEXT: [[TMP1:%.*]] = call <4 x i1> @llvm.arm.mve.pred.i2v.v4i1(i32 [[TMP0]])
1163
- // CHECK-NEXT: [[TMP2:%.*]] = call <8 x i16> @llvm.arm.mve.vshrn.predicated.v8i16.v4i32.v4i1(<8 x i16> [[A:%.*]], <4 x i32> [[B:%.*]], i32 10, i32 1, i32 0 , i32 1, i32 0, i32 0, <4 x i1> [[TMP1]])
1163
+ // CHECK-NEXT: [[TMP2:%.*]] = call <8 x i16> @llvm.arm.mve.vshrn.predicated.v8i16.v4i32.v4i1(<8 x i16> [[A:%.*]], <4 x i32> [[B:%.*]], i32 10, i32 1, i32 1 , i32 1, i32 0, i32 0, <4 x i1> [[TMP1]])
1164
1164
// CHECK-NEXT: ret <8 x i16> [[TMP2]]
1165
1165
//
1166
1166
uint16x8_t test_vqrshrunbq_m_n_s32 (uint16x8_t a , int32x4_t b , mve_pred16_t p )
@@ -1176,7 +1176,7 @@ uint16x8_t test_vqrshrunbq_m_n_s32(uint16x8_t a, int32x4_t b, mve_pred16_t p)
1176
1176
// CHECK-NEXT: entry:
1177
1177
// CHECK-NEXT: [[TMP0:%.*]] = zext i16 [[P:%.*]] to i32
1178
1178
// CHECK-NEXT: [[TMP1:%.*]] = call <8 x i1> @llvm.arm.mve.pred.i2v.v8i1(i32 [[TMP0]])
1179
- // CHECK-NEXT: [[TMP2:%.*]] = call <16 x i8> @llvm.arm.mve.vshrn.predicated.v16i8.v8i16.v8i1(<16 x i8> [[A:%.*]], <8 x i16> [[B:%.*]], i32 3, i32 1, i32 0 , i32 1, i32 0, i32 1, <8 x i1> [[TMP1]])
1179
+ // CHECK-NEXT: [[TMP2:%.*]] = call <16 x i8> @llvm.arm.mve.vshrn.predicated.v16i8.v8i16.v8i1(<16 x i8> [[A:%.*]], <8 x i16> [[B:%.*]], i32 3, i32 1, i32 1 , i32 1, i32 0, i32 1, <8 x i1> [[TMP1]])
1180
1180
// CHECK-NEXT: ret <16 x i8> [[TMP2]]
1181
1181
//
1182
1182
uint8x16_t test_vqrshruntq_m_n_s16 (uint8x16_t a , int16x8_t b , mve_pred16_t p )
@@ -1192,7 +1192,7 @@ uint8x16_t test_vqrshruntq_m_n_s16(uint8x16_t a, int16x8_t b, mve_pred16_t p)
1192
1192
// CHECK-NEXT: entry:
1193
1193
// CHECK-NEXT: [[TMP0:%.*]] = zext i16 [[P:%.*]] to i32
1194
1194
// CHECK-NEXT: [[TMP1:%.*]] = call <4 x i1> @llvm.arm.mve.pred.i2v.v4i1(i32 [[TMP0]])
1195
- // CHECK-NEXT: [[TMP2:%.*]] = call <8 x i16> @llvm.arm.mve.vshrn.predicated.v8i16.v4i32.v4i1(<8 x i16> [[A:%.*]], <4 x i32> [[B:%.*]], i32 13, i32 1, i32 0 , i32 1, i32 0, i32 1, <4 x i1> [[TMP1]])
1195
+ // CHECK-NEXT: [[TMP2:%.*]] = call <8 x i16> @llvm.arm.mve.vshrn.predicated.v8i16.v4i32.v4i1(<8 x i16> [[A:%.*]], <4 x i32> [[B:%.*]], i32 13, i32 1, i32 1 , i32 1, i32 0, i32 1, <4 x i1> [[TMP1]])
1196
1196
// CHECK-NEXT: ret <8 x i16> [[TMP2]]
1197
1197
//
1198
1198
uint16x8_t test_vqrshruntq_m_n_s32 (uint16x8_t a , int32x4_t b , mve_pred16_t p )
0 commit comments