[clang] 14304b9 - [RISCV] Re-generate rvp-intrinsics.c using common prefix. NFC (#227836)

via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 30 19:49:11 PDT 2026


Author: Craig Topper
Date: 2026-10-01T02:49:01Z
New Revision: 14304b90ece21e882060c0346d5196fa567aaab4

URL: https://github.com/llvm/llvm-project/commit/14304b90ece21e882060c0346d5196fa567aaab4
DIFF: https://github.com/llvm/llvm-project/commit/14304b90ece21e882060c0346d5196fa567aaab4.diff

LOG: [RISCV] Re-generate rvp-intrinsics.c using common prefix. NFC (#227836)

The common prefix was added while widening unzip was in review.

Added: 
    

Modified: 
    clang/test/CodeGen/RISCV/rvp-intrinsics.c

Removed: 
    


################################################################################
diff  --git a/clang/test/CodeGen/RISCV/rvp-intrinsics.c b/clang/test/CodeGen/RISCV/rvp-intrinsics.c
index f5a5863642331..b26b75b3e1431 100644
--- a/clang/test/CodeGen/RISCV/rvp-intrinsics.c
+++ b/clang/test/CodeGen/RISCV/rvp-intrinsics.c
@@ -8803,153 +8803,89 @@ int32x2_t test_psati_i32x2(int32x2_t a) { return __riscv_psati_i32x2(a, 16); }
 
 /* Packed Widening Unzip (32-bit) */
 
-// RV32-LABEL: define dso_local i32 @test_pwunzipe_i16x2(
-// RV32-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
-// RV32-NEXT:    [[TMP1:%.*]] = call <2 x i16> @llvm.riscv.psext.b.v2i16(<2 x i16> [[TMP0]])
-// RV32-NEXT:    [[TMP2:%.*]] = bitcast <2 x i16> [[TMP1]] to i32
-// RV32-NEXT:    ret i32 [[TMP2]]
-//
-// RV64-LABEL: define dso_local i32 @test_pwunzipe_i16x2(
-// RV64-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
-// RV64-NEXT:    [[TMP1:%.*]] = call <2 x i16> @llvm.riscv.psext.b.v2i16(<2 x i16> [[TMP0]])
-// RV64-NEXT:    [[TMP2:%.*]] = bitcast <2 x i16> [[TMP1]] to i32
-// RV64-NEXT:    ret i32 [[TMP2]]
+// CHECK-LABEL: define dso_local i32 @test_pwunzipe_i16x2(
+// CHECK-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
+// CHECK-NEXT:    [[TMP1:%.*]] = call <2 x i16> @llvm.riscv.psext.b.v2i16(<2 x i16> [[TMP0]])
+// CHECK-NEXT:    [[TMP2:%.*]] = bitcast <2 x i16> [[TMP1]] to i32
+// CHECK-NEXT:    ret i32 [[TMP2]]
 //
 int16x2_t test_pwunzipe_i16x2(int8x4_t a) { return __riscv_pwunzipe_i16x2(a); }
 
-// RV32-LABEL: define dso_local i32 @test_pwunzipo_i16x2(
-// RV32-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
-// RV32-NEXT:    [[SHR_I:%.*]] = ashr <2 x i16> [[TMP0]], splat (i16 8)
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <2 x i16> [[SHR_I]] to i32
-// RV32-NEXT:    ret i32 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i32 @test_pwunzipo_i16x2(
-// RV64-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
-// RV64-NEXT:    [[SHR_I:%.*]] = ashr <2 x i16> [[TMP0]], splat (i16 8)
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <2 x i16> [[SHR_I]] to i32
-// RV64-NEXT:    ret i32 [[TMP1]]
+// CHECK-LABEL: define dso_local i32 @test_pwunzipo_i16x2(
+// CHECK-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
+// CHECK-NEXT:    [[SHR_I:%.*]] = ashr <2 x i16> [[TMP0]], splat (i16 8)
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <2 x i16> [[SHR_I]] to i32
+// CHECK-NEXT:    ret i32 [[TMP1]]
 //
 int16x2_t test_pwunzipo_i16x2(int8x4_t a) { return __riscv_pwunzipo_i16x2(a); }
 
-// RV32-LABEL: define dso_local i32 @test_pwunzipue_u16x2(
-// RV32-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
-// RV32-NEXT:    [[TMP1:%.*]] = call <2 x i16> @llvm.riscv.pzext.b.v2i16(<2 x i16> [[TMP0]])
-// RV32-NEXT:    [[TMP2:%.*]] = bitcast <2 x i16> [[TMP1]] to i32
-// RV32-NEXT:    ret i32 [[TMP2]]
-//
-// RV64-LABEL: define dso_local i32 @test_pwunzipue_u16x2(
-// RV64-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
-// RV64-NEXT:    [[TMP1:%.*]] = call <2 x i16> @llvm.riscv.pzext.b.v2i16(<2 x i16> [[TMP0]])
-// RV64-NEXT:    [[TMP2:%.*]] = bitcast <2 x i16> [[TMP1]] to i32
-// RV64-NEXT:    ret i32 [[TMP2]]
+// CHECK-LABEL: define dso_local i32 @test_pwunzipue_u16x2(
+// CHECK-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
+// CHECK-NEXT:    [[TMP1:%.*]] = call <2 x i16> @llvm.riscv.pzext.b.v2i16(<2 x i16> [[TMP0]])
+// CHECK-NEXT:    [[TMP2:%.*]] = bitcast <2 x i16> [[TMP1]] to i32
+// CHECK-NEXT:    ret i32 [[TMP2]]
 //
 uint16x2_t test_pwunzipue_u16x2(uint8x4_t a) {
   return __riscv_pwunzipue_u16x2(a);
 }
 
-// RV32-LABEL: define dso_local i32 @test_pwunzipuo_u16x2(
-// RV32-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
-// RV32-NEXT:    [[SHR_I:%.*]] = lshr <2 x i16> [[TMP0]], splat (i16 8)
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <2 x i16> [[SHR_I]] to i32
-// RV32-NEXT:    ret i32 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i32 @test_pwunzipuo_u16x2(
-// RV64-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
-// RV64-NEXT:    [[SHR_I:%.*]] = lshr <2 x i16> [[TMP0]], splat (i16 8)
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <2 x i16> [[SHR_I]] to i32
-// RV64-NEXT:    ret i32 [[TMP1]]
+// CHECK-LABEL: define dso_local i32 @test_pwunzipuo_u16x2(
+// CHECK-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
+// CHECK-NEXT:    [[SHR_I:%.*]] = lshr <2 x i16> [[TMP0]], splat (i16 8)
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <2 x i16> [[SHR_I]] to i32
+// CHECK-NEXT:    ret i32 [[TMP1]]
 //
 uint16x2_t test_pwunzipuo_u16x2(uint8x4_t a) {
   return __riscv_pwunzipuo_u16x2(a);
 }
 
-// RV32-LABEL: define dso_local i32 @test_pwunziphe_i16x2(
-// RV32-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
-// RV32-NEXT:    [[SHL_I:%.*]] = shl <2 x i16> [[TMP0]], splat (i16 8)
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <2 x i16> [[SHL_I]] to i32
-// RV32-NEXT:    ret i32 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i32 @test_pwunziphe_i16x2(
-// RV64-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
-// RV64-NEXT:    [[SHL_I:%.*]] = shl <2 x i16> [[TMP0]], splat (i16 8)
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <2 x i16> [[SHL_I]] to i32
-// RV64-NEXT:    ret i32 [[TMP1]]
+// CHECK-LABEL: define dso_local i32 @test_pwunziphe_i16x2(
+// CHECK-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
+// CHECK-NEXT:    [[SHL_I:%.*]] = shl <2 x i16> [[TMP0]], splat (i16 8)
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <2 x i16> [[SHL_I]] to i32
+// CHECK-NEXT:    ret i32 [[TMP1]]
 //
 int16x2_t test_pwunziphe_i16x2(int8x4_t a) { return __riscv_pwunziphe_i16x2(a); }
 
-// RV32-LABEL: define dso_local i32 @test_pwunziphe_u16x2(
-// RV32-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
-// RV32-NEXT:    [[SHL_I:%.*]] = shl <2 x i16> [[TMP0]], splat (i16 8)
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <2 x i16> [[SHL_I]] to i32
-// RV32-NEXT:    ret i32 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i32 @test_pwunziphe_u16x2(
-// RV64-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
-// RV64-NEXT:    [[SHL_I:%.*]] = shl <2 x i16> [[TMP0]], splat (i16 8)
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <2 x i16> [[SHL_I]] to i32
-// RV64-NEXT:    ret i32 [[TMP1]]
+// CHECK-LABEL: define dso_local i32 @test_pwunziphe_u16x2(
+// CHECK-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <2 x i16>
+// CHECK-NEXT:    [[SHL_I:%.*]] = shl <2 x i16> [[TMP0]], splat (i16 8)
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <2 x i16> [[SHL_I]] to i32
+// CHECK-NEXT:    ret i32 [[TMP1]]
 //
 uint16x2_t test_pwunziphe_u16x2(uint8x4_t a) {
   return __riscv_pwunziphe_u16x2(a);
 }
 
-// RV32-LABEL: define dso_local i32 @test_pwunzipho_i16x2(
-// RV32-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <4 x i8>
-// RV32-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <4 x i8> <i8 poison, i8 0, i8 poison, i8 0>, <4 x i8> [[TMP0]], <4 x i32> <i32 1, i32 5, i32 3, i32 7>
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <4 x i8> [[SHUFFLE_I_I]] to i32
-// RV32-NEXT:    ret i32 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i32 @test_pwunzipho_i16x2(
-// RV64-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <4 x i8>
-// RV64-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <4 x i8> <i8 poison, i8 0, i8 poison, i8 0>, <4 x i8> [[TMP0]], <4 x i32> <i32 1, i32 5, i32 3, i32 7>
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <4 x i8> [[SHUFFLE_I_I]] to i32
-// RV64-NEXT:    ret i32 [[TMP1]]
+// CHECK-LABEL: define dso_local i32 @test_pwunzipho_i16x2(
+// CHECK-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <4 x i8>
+// CHECK-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <4 x i8> <i8 poison, i8 0, i8 poison, i8 0>, <4 x i8> [[TMP0]], <4 x i32> <i32 1, i32 5, i32 3, i32 7>
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <4 x i8> [[SHUFFLE_I_I]] to i32
+// CHECK-NEXT:    ret i32 [[TMP1]]
 //
 int16x2_t test_pwunzipho_i16x2(int8x4_t a) { return __riscv_pwunzipho_i16x2(a); }
 
-// RV32-LABEL: define dso_local i32 @test_pwunzipho_u16x2(
-// RV32-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <4 x i8>
-// RV32-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <4 x i8> <i8 poison, i8 0, i8 poison, i8 0>, <4 x i8> [[TMP0]], <4 x i32> <i32 1, i32 5, i32 3, i32 7>
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <4 x i8> [[SHUFFLE_I_I]] to i32
-// RV32-NEXT:    ret i32 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i32 @test_pwunzipho_u16x2(
-// RV64-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <4 x i8>
-// RV64-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <4 x i8> <i8 poison, i8 0, i8 poison, i8 0>, <4 x i8> [[TMP0]], <4 x i32> <i32 1, i32 5, i32 3, i32 7>
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <4 x i8> [[SHUFFLE_I_I]] to i32
-// RV64-NEXT:    ret i32 [[TMP1]]
+// CHECK-LABEL: define dso_local i32 @test_pwunzipho_u16x2(
+// CHECK-SAME: i32 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i32 [[A_COERCE]] to <4 x i8>
+// CHECK-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <4 x i8> <i8 poison, i8 0, i8 poison, i8 0>, <4 x i8> [[TMP0]], <4 x i32> <i32 1, i32 5, i32 3, i32 7>
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <4 x i8> [[SHUFFLE_I_I]] to i32
+// CHECK-NEXT:    ret i32 [[TMP1]]
 //
 uint16x2_t test_pwunzipho_u16x2(uint8x4_t a) {
   return __riscv_pwunzipho_u16x2(a);
@@ -8957,305 +8893,177 @@ uint16x2_t test_pwunzipho_u16x2(uint8x4_t a) {
 
 /* Packed Widening Unzip (64-bit) */
 
-// RV32-LABEL: define dso_local i64 @test_pwunzipe_i16x4(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV32-NEXT:    [[TMP1:%.*]] = call <4 x i16> @llvm.riscv.psext.b.v4i16(<4 x i16> [[TMP0]])
-// RV32-NEXT:    [[TMP2:%.*]] = bitcast <4 x i16> [[TMP1]] to i64
-// RV32-NEXT:    ret i64 [[TMP2]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunzipe_i16x4(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV64-NEXT:    [[TMP1:%.*]] = call <4 x i16> @llvm.riscv.psext.b.v4i16(<4 x i16> [[TMP0]])
-// RV64-NEXT:    [[TMP2:%.*]] = bitcast <4 x i16> [[TMP1]] to i64
-// RV64-NEXT:    ret i64 [[TMP2]]
+// CHECK-LABEL: define dso_local i64 @test_pwunzipe_i16x4(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
+// CHECK-NEXT:    [[TMP1:%.*]] = call <4 x i16> @llvm.riscv.psext.b.v4i16(<4 x i16> [[TMP0]])
+// CHECK-NEXT:    [[TMP2:%.*]] = bitcast <4 x i16> [[TMP1]] to i64
+// CHECK-NEXT:    ret i64 [[TMP2]]
 //
 int16x4_t test_pwunzipe_i16x4(int8x8_t a) { return __riscv_pwunzipe_i16x4(a); }
 
-// RV32-LABEL: define dso_local i64 @test_pwunzipo_i16x4(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV32-NEXT:    [[SHR_I:%.*]] = ashr <4 x i16> [[TMP0]], splat (i16 8)
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHR_I]] to i64
-// RV32-NEXT:    ret i64 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunzipo_i16x4(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV64-NEXT:    [[SHR_I:%.*]] = ashr <4 x i16> [[TMP0]], splat (i16 8)
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHR_I]] to i64
-// RV64-NEXT:    ret i64 [[TMP1]]
+// CHECK-LABEL: define dso_local i64 @test_pwunzipo_i16x4(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
+// CHECK-NEXT:    [[SHR_I:%.*]] = ashr <4 x i16> [[TMP0]], splat (i16 8)
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHR_I]] to i64
+// CHECK-NEXT:    ret i64 [[TMP1]]
 //
 int16x4_t test_pwunzipo_i16x4(int8x8_t a) { return __riscv_pwunzipo_i16x4(a); }
 
-// RV32-LABEL: define dso_local i64 @test_pwunzipue_u16x4(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV32-NEXT:    [[TMP1:%.*]] = call <4 x i16> @llvm.riscv.pzext.b.v4i16(<4 x i16> [[TMP0]])
-// RV32-NEXT:    [[TMP2:%.*]] = bitcast <4 x i16> [[TMP1]] to i64
-// RV32-NEXT:    ret i64 [[TMP2]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunzipue_u16x4(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV64-NEXT:    [[TMP1:%.*]] = call <4 x i16> @llvm.riscv.pzext.b.v4i16(<4 x i16> [[TMP0]])
-// RV64-NEXT:    [[TMP2:%.*]] = bitcast <4 x i16> [[TMP1]] to i64
-// RV64-NEXT:    ret i64 [[TMP2]]
+// CHECK-LABEL: define dso_local i64 @test_pwunzipue_u16x4(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
+// CHECK-NEXT:    [[TMP1:%.*]] = call <4 x i16> @llvm.riscv.pzext.b.v4i16(<4 x i16> [[TMP0]])
+// CHECK-NEXT:    [[TMP2:%.*]] = bitcast <4 x i16> [[TMP1]] to i64
+// CHECK-NEXT:    ret i64 [[TMP2]]
 //
 uint16x4_t test_pwunzipue_u16x4(uint8x8_t a) {
   return __riscv_pwunzipue_u16x4(a);
 }
 
-// RV32-LABEL: define dso_local i64 @test_pwunzipuo_u16x4(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV32-NEXT:    [[SHR_I:%.*]] = lshr <4 x i16> [[TMP0]], splat (i16 8)
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHR_I]] to i64
-// RV32-NEXT:    ret i64 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunzipuo_u16x4(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV64-NEXT:    [[SHR_I:%.*]] = lshr <4 x i16> [[TMP0]], splat (i16 8)
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHR_I]] to i64
-// RV64-NEXT:    ret i64 [[TMP1]]
+// CHECK-LABEL: define dso_local i64 @test_pwunzipuo_u16x4(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
+// CHECK-NEXT:    [[SHR_I:%.*]] = lshr <4 x i16> [[TMP0]], splat (i16 8)
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHR_I]] to i64
+// CHECK-NEXT:    ret i64 [[TMP1]]
 //
 uint16x4_t test_pwunzipuo_u16x4(uint8x8_t a) {
   return __riscv_pwunzipuo_u16x4(a);
 }
 
-// RV32-LABEL: define dso_local i64 @test_pwunzipe_i32x2(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
-// RV32-NEXT:    [[TMP1:%.*]] = call <2 x i32> @llvm.riscv.psext.h.v2i32(<2 x i32> [[TMP0]])
-// RV32-NEXT:    [[TMP2:%.*]] = bitcast <2 x i32> [[TMP1]] to i64
-// RV32-NEXT:    ret i64 [[TMP2]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunzipe_i32x2(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
-// RV64-NEXT:    [[TMP1:%.*]] = call <2 x i32> @llvm.riscv.psext.h.v2i32(<2 x i32> [[TMP0]])
-// RV64-NEXT:    [[TMP2:%.*]] = bitcast <2 x i32> [[TMP1]] to i64
-// RV64-NEXT:    ret i64 [[TMP2]]
+// CHECK-LABEL: define dso_local i64 @test_pwunzipe_i32x2(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
+// CHECK-NEXT:    [[TMP1:%.*]] = call <2 x i32> @llvm.riscv.psext.h.v2i32(<2 x i32> [[TMP0]])
+// CHECK-NEXT:    [[TMP2:%.*]] = bitcast <2 x i32> [[TMP1]] to i64
+// CHECK-NEXT:    ret i64 [[TMP2]]
 //
 int32x2_t test_pwunzipe_i32x2(int16x4_t a) { return __riscv_pwunzipe_i32x2(a); }
 
-// RV32-LABEL: define dso_local i64 @test_pwunzipo_i32x2(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
-// RV32-NEXT:    [[SHR_I:%.*]] = ashr <2 x i32> [[TMP0]], splat (i32 16)
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <2 x i32> [[SHR_I]] to i64
-// RV32-NEXT:    ret i64 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunzipo_i32x2(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
-// RV64-NEXT:    [[SHR_I:%.*]] = ashr <2 x i32> [[TMP0]], splat (i32 16)
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <2 x i32> [[SHR_I]] to i64
-// RV64-NEXT:    ret i64 [[TMP1]]
+// CHECK-LABEL: define dso_local i64 @test_pwunzipo_i32x2(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
+// CHECK-NEXT:    [[SHR_I:%.*]] = ashr <2 x i32> [[TMP0]], splat (i32 16)
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <2 x i32> [[SHR_I]] to i64
+// CHECK-NEXT:    ret i64 [[TMP1]]
 //
 int32x2_t test_pwunzipo_i32x2(int16x4_t a) { return __riscv_pwunzipo_i32x2(a); }
 
-// RV32-LABEL: define dso_local i64 @test_pwunzipue_u32x2(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
-// RV32-NEXT:    [[TMP1:%.*]] = call <2 x i32> @llvm.riscv.pzext.h.v2i32(<2 x i32> [[TMP0]])
-// RV32-NEXT:    [[TMP2:%.*]] = bitcast <2 x i32> [[TMP1]] to i64
-// RV32-NEXT:    ret i64 [[TMP2]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunzipue_u32x2(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
-// RV64-NEXT:    [[TMP1:%.*]] = call <2 x i32> @llvm.riscv.pzext.h.v2i32(<2 x i32> [[TMP0]])
-// RV64-NEXT:    [[TMP2:%.*]] = bitcast <2 x i32> [[TMP1]] to i64
-// RV64-NEXT:    ret i64 [[TMP2]]
+// CHECK-LABEL: define dso_local i64 @test_pwunzipue_u32x2(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
+// CHECK-NEXT:    [[TMP1:%.*]] = call <2 x i32> @llvm.riscv.pzext.h.v2i32(<2 x i32> [[TMP0]])
+// CHECK-NEXT:    [[TMP2:%.*]] = bitcast <2 x i32> [[TMP1]] to i64
+// CHECK-NEXT:    ret i64 [[TMP2]]
 //
 uint32x2_t test_pwunzipue_u32x2(uint16x4_t a) {
   return __riscv_pwunzipue_u32x2(a);
 }
 
-// RV32-LABEL: define dso_local i64 @test_pwunzipuo_u32x2(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
-// RV32-NEXT:    [[SHR_I:%.*]] = lshr <2 x i32> [[TMP0]], splat (i32 16)
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <2 x i32> [[SHR_I]] to i64
-// RV32-NEXT:    ret i64 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunzipuo_u32x2(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
-// RV64-NEXT:    [[SHR_I:%.*]] = lshr <2 x i32> [[TMP0]], splat (i32 16)
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <2 x i32> [[SHR_I]] to i64
-// RV64-NEXT:    ret i64 [[TMP1]]
+// CHECK-LABEL: define dso_local i64 @test_pwunzipuo_u32x2(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
+// CHECK-NEXT:    [[SHR_I:%.*]] = lshr <2 x i32> [[TMP0]], splat (i32 16)
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <2 x i32> [[SHR_I]] to i64
+// CHECK-NEXT:    ret i64 [[TMP1]]
 //
 uint32x2_t test_pwunzipuo_u32x2(uint16x4_t a) {
   return __riscv_pwunzipuo_u32x2(a);
 }
 
-// RV32-LABEL: define dso_local i64 @test_pwunziphe_i16x4(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV32-NEXT:    [[SHL_I:%.*]] = shl <4 x i16> [[TMP0]], splat (i16 8)
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHL_I]] to i64
-// RV32-NEXT:    ret i64 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunziphe_i16x4(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV64-NEXT:    [[SHL_I:%.*]] = shl <4 x i16> [[TMP0]], splat (i16 8)
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHL_I]] to i64
-// RV64-NEXT:    ret i64 [[TMP1]]
+// CHECK-LABEL: define dso_local i64 @test_pwunziphe_i16x4(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
+// CHECK-NEXT:    [[SHL_I:%.*]] = shl <4 x i16> [[TMP0]], splat (i16 8)
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHL_I]] to i64
+// CHECK-NEXT:    ret i64 [[TMP1]]
 //
 int16x4_t test_pwunziphe_i16x4(int8x8_t a) { return __riscv_pwunziphe_i16x4(a); }
 
-// RV32-LABEL: define dso_local i64 @test_pwunziphe_u16x4(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV32-NEXT:    [[SHL_I:%.*]] = shl <4 x i16> [[TMP0]], splat (i16 8)
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHL_I]] to i64
-// RV32-NEXT:    ret i64 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunziphe_u16x4(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV64-NEXT:    [[SHL_I:%.*]] = shl <4 x i16> [[TMP0]], splat (i16 8)
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHL_I]] to i64
-// RV64-NEXT:    ret i64 [[TMP1]]
+// CHECK-LABEL: define dso_local i64 @test_pwunziphe_u16x4(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
+// CHECK-NEXT:    [[SHL_I:%.*]] = shl <4 x i16> [[TMP0]], splat (i16 8)
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHL_I]] to i64
+// CHECK-NEXT:    ret i64 [[TMP1]]
 //
 uint16x4_t test_pwunziphe_u16x4(uint8x8_t a) {
   return __riscv_pwunziphe_u16x4(a);
 }
 
-// RV32-LABEL: define dso_local i64 @test_pwunzipho_i16x4(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <8 x i8>
-// RV32-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <8 x i8> <i8 poison, i8 0, i8 poison, i8 0, i8 poison, i8 0, i8 poison, i8 0>, <8 x i8> [[TMP0]], <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <8 x i8> [[SHUFFLE_I_I]] to i64
-// RV32-NEXT:    ret i64 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunzipho_i16x4(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <8 x i8>
-// RV64-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <8 x i8> <i8 poison, i8 0, i8 poison, i8 0, i8 poison, i8 0, i8 poison, i8 0>, <8 x i8> [[TMP0]], <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <8 x i8> [[SHUFFLE_I_I]] to i64
-// RV64-NEXT:    ret i64 [[TMP1]]
+// CHECK-LABEL: define dso_local i64 @test_pwunzipho_i16x4(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <8 x i8>
+// CHECK-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <8 x i8> <i8 poison, i8 0, i8 poison, i8 0, i8 poison, i8 0, i8 poison, i8 0>, <8 x i8> [[TMP0]], <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <8 x i8> [[SHUFFLE_I_I]] to i64
+// CHECK-NEXT:    ret i64 [[TMP1]]
 //
 int16x4_t test_pwunzipho_i16x4(int8x8_t a) { return __riscv_pwunzipho_i16x4(a); }
 
-// RV32-LABEL: define dso_local i64 @test_pwunzipho_u16x4(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <8 x i8>
-// RV32-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <8 x i8> <i8 poison, i8 0, i8 poison, i8 0, i8 poison, i8 0, i8 poison, i8 0>, <8 x i8> [[TMP0]], <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <8 x i8> [[SHUFFLE_I_I]] to i64
-// RV32-NEXT:    ret i64 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunzipho_u16x4(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <8 x i8>
-// RV64-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <8 x i8> <i8 poison, i8 0, i8 poison, i8 0, i8 poison, i8 0, i8 poison, i8 0>, <8 x i8> [[TMP0]], <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <8 x i8> [[SHUFFLE_I_I]] to i64
-// RV64-NEXT:    ret i64 [[TMP1]]
+// CHECK-LABEL: define dso_local i64 @test_pwunzipho_u16x4(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <8 x i8>
+// CHECK-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <8 x i8> <i8 poison, i8 0, i8 poison, i8 0, i8 poison, i8 0, i8 poison, i8 0>, <8 x i8> [[TMP0]], <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <8 x i8> [[SHUFFLE_I_I]] to i64
+// CHECK-NEXT:    ret i64 [[TMP1]]
 //
 uint16x4_t test_pwunzipho_u16x4(uint8x8_t a) {
   return __riscv_pwunzipho_u16x4(a);
 }
 
-// RV32-LABEL: define dso_local i64 @test_pwunziphe_i32x2(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
-// RV32-NEXT:    [[SHL_I:%.*]] = shl <2 x i32> [[TMP0]], splat (i32 16)
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <2 x i32> [[SHL_I]] to i64
-// RV32-NEXT:    ret i64 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunziphe_i32x2(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
-// RV64-NEXT:    [[SHL_I:%.*]] = shl <2 x i32> [[TMP0]], splat (i32 16)
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <2 x i32> [[SHL_I]] to i64
-// RV64-NEXT:    ret i64 [[TMP1]]
+// CHECK-LABEL: define dso_local i64 @test_pwunziphe_i32x2(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
+// CHECK-NEXT:    [[SHL_I:%.*]] = shl <2 x i32> [[TMP0]], splat (i32 16)
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <2 x i32> [[SHL_I]] to i64
+// CHECK-NEXT:    ret i64 [[TMP1]]
 //
 int32x2_t test_pwunziphe_i32x2(int16x4_t a) { return __riscv_pwunziphe_i32x2(a); }
 
-// RV32-LABEL: define dso_local i64 @test_pwunziphe_u32x2(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
-// RV32-NEXT:    [[SHL_I:%.*]] = shl <2 x i32> [[TMP0]], splat (i32 16)
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <2 x i32> [[SHL_I]] to i64
-// RV32-NEXT:    ret i64 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunziphe_u32x2(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
-// RV64-NEXT:    [[SHL_I:%.*]] = shl <2 x i32> [[TMP0]], splat (i32 16)
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <2 x i32> [[SHL_I]] to i64
-// RV64-NEXT:    ret i64 [[TMP1]]
+// CHECK-LABEL: define dso_local i64 @test_pwunziphe_u32x2(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <2 x i32>
+// CHECK-NEXT:    [[SHL_I:%.*]] = shl <2 x i32> [[TMP0]], splat (i32 16)
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <2 x i32> [[SHL_I]] to i64
+// CHECK-NEXT:    ret i64 [[TMP1]]
 //
 uint32x2_t test_pwunziphe_u32x2(uint16x4_t a) {
   return __riscv_pwunziphe_u32x2(a);
 }
 
-// RV32-LABEL: define dso_local i64 @test_pwunzipho_i32x2(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV32-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <4 x i16> <i16 poison, i16 0, i16 poison, i16 0>, <4 x i16> [[TMP0]], <4 x i32> <i32 1, i32 5, i32 3, i32 7>
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHUFFLE_I_I]] to i64
-// RV32-NEXT:    ret i64 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunzipho_i32x2(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV64-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <4 x i16> <i16 poison, i16 0, i16 poison, i16 0>, <4 x i16> [[TMP0]], <4 x i32> <i32 1, i32 5, i32 3, i32 7>
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHUFFLE_I_I]] to i64
-// RV64-NEXT:    ret i64 [[TMP1]]
+// CHECK-LABEL: define dso_local i64 @test_pwunzipho_i32x2(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
+// CHECK-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <4 x i16> <i16 poison, i16 0, i16 poison, i16 0>, <4 x i16> [[TMP0]], <4 x i32> <i32 1, i32 5, i32 3, i32 7>
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHUFFLE_I_I]] to i64
+// CHECK-NEXT:    ret i64 [[TMP1]]
 //
 int32x2_t test_pwunzipho_i32x2(int16x4_t a) { return __riscv_pwunzipho_i32x2(a); }
 
-// RV32-LABEL: define dso_local i64 @test_pwunzipho_u32x2(
-// RV32-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV32-NEXT:  [[ENTRY:.*:]]
-// RV32-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV32-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <4 x i16> <i16 poison, i16 0, i16 poison, i16 0>, <4 x i16> [[TMP0]], <4 x i32> <i32 1, i32 5, i32 3, i32 7>
-// RV32-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHUFFLE_I_I]] to i64
-// RV32-NEXT:    ret i64 [[TMP1]]
-//
-// RV64-LABEL: define dso_local i64 @test_pwunzipho_u32x2(
-// RV64-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
-// RV64-NEXT:  [[ENTRY:.*:]]
-// RV64-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
-// RV64-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <4 x i16> <i16 poison, i16 0, i16 poison, i16 0>, <4 x i16> [[TMP0]], <4 x i32> <i32 1, i32 5, i32 3, i32 7>
-// RV64-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHUFFLE_I_I]] to i64
-// RV64-NEXT:    ret i64 [[TMP1]]
+// CHECK-LABEL: define dso_local i64 @test_pwunzipho_u32x2(
+// CHECK-SAME: i64 noundef [[A_COERCE:%.*]]) #[[ATTR0]] {
+// CHECK-NEXT:  [[ENTRY:.*:]]
+// CHECK-NEXT:    [[TMP0:%.*]] = bitcast i64 [[A_COERCE]] to <4 x i16>
+// CHECK-NEXT:    [[SHUFFLE_I_I:%.*]] = shufflevector <4 x i16> <i16 poison, i16 0, i16 poison, i16 0>, <4 x i16> [[TMP0]], <4 x i32> <i32 1, i32 5, i32 3, i32 7>
+// CHECK-NEXT:    [[TMP1:%.*]] = bitcast <4 x i16> [[SHUFFLE_I_I]] to i64
+// CHECK-NEXT:    ret i64 [[TMP1]]
 //
 uint32x2_t test_pwunzipho_u32x2(uint16x4_t a) {
   return __riscv_pwunzipho_u32x2(a);


        


More information about the cfe-commits mailing list