[PATCH] D135392: Use PoisonValue in vector BIs [NFC]
This revision was automatically updated to reflect the committed changes. Closed by commit rG14e2592ff611: [clang][CodeGen] Use poison instead of undef as placeholder in ARM builtins… (authored by ManuelJBrito, committed by nlopes). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135392/new/ https://reviews.llvm.org/D135392 Files: clang/lib/CodeGen/CGBuiltin.cpp clang/test/CodeGen/PowerPC/builtins-ppc-int128.c clang/test/CodeGen/aarch64-bf16-ldst-intrinsics.c clang/test/CodeGen/aarch64-neon-intrinsics.c clang/test/CodeGen/aarch64-neon-ldst-one.c clang/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dupq-bfloat.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dupq.c clang/test/CodeGen/arm-mve-intrinsics/vld24.c clang/test/CodeGen/arm_neon_intrinsics.c Index: clang/test/CodeGen/arm_neon_intrinsics.c === --- clang/test/CodeGen/arm_neon_intrinsics.c +++ clang/test/CodeGen/arm_neon_intrinsics.c @@ -4077,7 +4077,7 @@ // CHECK-LABEL: @test_vld1q_dup_u8( // CHECK: [[TMP0:%.*]] = load i8, i8* %a, align 1 -// CHECK: [[TMP1:%.*]] = insertelement <16 x i8> undef, i8 [[TMP0]], i32 0 +// CHECK: [[TMP1:%.*]] = insertelement <16 x i8> poison, i8 [[TMP0]], i32 0 // CHECK: [[LANE:%.*]] = shufflevector <16 x i8> [[TMP1]], <16 x i8> [[TMP1]], <16 x i32> zeroinitializer // CHECK: ret <16 x i8> [[LANE]] uint8x16_t test_vld1q_dup_u8(uint8_t const * a) { @@ -4088,7 +4088,7 @@ // CHECK: [[TMP0:%.*]] = bitcast i16* %a to i8* // CHECK: [[TMP1:%.*]] = bitcast i8* [[TMP0]] to i16* // CHECK: [[TMP2:%.*]] = load i16, i16* [[TMP1]], align 2 -// CHECK: [[TMP3:%.*]] = insertelement <8 x i16> undef, i16 [[TMP2]], i32 0 +// CHECK: [[TMP3:%.*]] = insertelement <8 x i16> poison, i16 [[TMP2]], i32 0 // CHECK: [[LANE:%.*]] = shufflevector <8 x i16> [[TMP3]], <8 x i16> [[TMP3]], <8 x i32> zeroinitializer // CHECK: ret <8 x i16> [[LANE]] uint16x8_t test_vld1q_dup_u16(uint16_t const * a) { @@ -4099,7 +4099,7 @@ // CHECK: [[TMP0:%.*]] = bitcast i32* %a to i8* // CHECK: [[TMP1:%.*]] = bitcast i8* [[TMP0]] to i32* // CHECK: [[TMP2:%.*]] = load i32, i32* [[TMP1]], align 4 -// CHECK: [[TMP3:%.*]] = insertelement <4 x i32> undef, i32 [[TMP2]], i32 0 +// CHECK: [[TMP3:%.*]] = insertelement <4 x i32> poison, i32 [[TMP2]], i32 0 // CHECK: [[LANE:%.*]] = shufflevector <4 x i32> [[TMP3]], <4 x i32> [[TMP3]], <4 x i32> zeroinitializer // CHECK: ret <4 x i32> [[LANE]] uint32x4_t test_vld1q_dup_u32(uint32_t const * a) { @@ -4110,7 +4110,7 @@ // CHECK: [[TMP0:%.*]] = bitcast i64* %a to i8* // CHECK: [[TMP1:%.*]] = bitcast i8* [[TMP0]] to i64* // CHECK: [[TMP2:%.*]] = load i64, i64* [[TMP1]], align 4 -// CHECK: [[TMP3:%.*]] = insertelement <2 x i64> undef, i64 [[TMP2]], i32 0 +// CHECK: [[TMP3:%.*]] = insertelement <2 x i64> poison, i64 [[TMP2]], i32 0 // CHECK: [[LANE:%.*]] = shufflevector <2 x i64> [[TMP3]], <2 x i64> [[TMP3]], <2 x i32> zeroinitializer // CHECK: ret <2 x i64> [[LANE]] uint64x2_t test_vld1q_dup_u64(uint64_t const * a) { @@ -4119,7 +4119,7 @@ // CHECK-LABEL: @test_vld1q_dup_s8( // CHECK: [[TMP0:%.*]] = load i8, i8* %a, align 1 -// CHECK: [[TMP1:%.*]] = insertelement <16 x i8> undef, i8 [[TMP0]], i32 0 +// CHECK: [[TMP1:%.*]] = insertelement <16 x i8> poison, i8 [[TMP0]], i32 0 // CHECK: [[LANE:%.*]] = shufflevector <16 x i8> [[TMP1]], <16 x i8> [[TMP1]], <16 x i32> zeroinitializer // CHECK: ret <16 x i8> [[LANE]] int8x16_t test_vld1q_dup_s8(int8_t const * a) { @@ -4130,7 +4130,7 @@ // CHECK: [[TMP0:%.*]] = bitcast i16* %a to i8* // CHECK: [[TMP1:%.*]] = bitcast i8* [[TMP0]] to i16* // CHECK: [[TMP2:%.*]] = load i16, i16* [[TMP1]], align 2 -// CHECK: [[TMP3:%.*]] = insertelement <8 x i16> undef, i16 [[TMP2]], i32 0 +// CHECK: [[TMP3:%.*]] = insertelement <8 x i16> poison, i16 [[TMP2]], i32 0 // CHECK: [[LANE:%.*]] = shufflevector <8 x i16> [[TMP3]], <8 x i16> [[TMP3]], <8 x i32> zeroinitializer // CHECK: ret <8 x i16> [[LANE]] int16x8_t test_vld1q_dup_s16(int16_t const * a) { @@ -4141,7 +4141,7 @@ // CHECK: [[TMP0:%.*]] = bitcast i32* %a to i8* // CHECK: [[TMP1:%.*]] = bitcast i8* [[TMP0]] to i32* // CHECK: [[TMP2:%.*]] = load i32, i32* [[TMP1]], align 4 -// CHECK: [[TMP3:%.*]] = insertelement <4 x i32> undef, i32 [[TMP2]], i32 0 +// CHECK: [[TMP3:%.*]] = insertelement <4 x i32> poison, i32 [[TMP2]], i32 0 // CHECK: [[LANE:%.*]] = shufflevector <4 x i32> [[TMP3]], <4 x i32> [[TMP3]], <4 x i32> zeroinitializer // CHECK: ret <4 x i32> [[LANE]] int32x4_t test_vld1q_dup_s32(int32_t const * a) { @@ -4152,7 +4152,7 @@ // CHECK: [[TMP0:%.*]] = bitcast i64* %a to i8* // CHECK: [[TMP1:%.*]] = bitcast i8* [[TMP0]] to i64* // CHECK: [[TMP2:%.*]] = load i64, i64* [[TMP1]], align 4 -// CHECK: [[TMP3:%.*]] = insertelement <2 x
[PATCH] D135392: Use PoisonValue in vector BIs [NFC]
nlopes accepted this revision. nlopes added a comment. This revision is now accepted and ready to land. LGTM Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135392/new/ https://reviews.llvm.org/D135392 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D135392: Use PoisonValue in vector BIs [NFC]
ManuelJBrito created this revision. ManuelJBrito added a reviewer: nlopes. ManuelJBrito added a project: clang. Herald added subscribers: dmgreen, arphaman, kbarton, nemanjai. Herald added a project: All. ManuelJBrito requested review of this revision. Herald added a subscriber: cfe-commits. Replacing the following instances of UndefValue with PoisonValue in clang/lib/CodeGen/CGBuiltin.cpp where the UndefValue is used as an arbitrary value. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D135392 Files: clang/lib/CodeGen/CGBuiltin.cpp clang/test/CodeGen/PowerPC/builtins-ppc-int128.c clang/test/CodeGen/aarch64-bf16-ldst-intrinsics.c clang/test/CodeGen/aarch64-neon-intrinsics.c clang/test/CodeGen/aarch64-neon-ldst-one.c clang/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dupq-bfloat.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dupq.c clang/test/CodeGen/arm-mve-intrinsics/vld24.c clang/test/CodeGen/arm_neon_intrinsics.c Index: clang/test/CodeGen/arm_neon_intrinsics.c === --- clang/test/CodeGen/arm_neon_intrinsics.c +++ clang/test/CodeGen/arm_neon_intrinsics.c @@ -4077,7 +4077,7 @@ // CHECK-LABEL: @test_vld1q_dup_u8( // CHECK: [[TMP0:%.*]] = load i8, i8* %a, align 1 -// CHECK: [[TMP1:%.*]] = insertelement <16 x i8> undef, i8 [[TMP0]], i32 0 +// CHECK: [[TMP1:%.*]] = insertelement <16 x i8> poison, i8 [[TMP0]], i32 0 // CHECK: [[LANE:%.*]] = shufflevector <16 x i8> [[TMP1]], <16 x i8> [[TMP1]], <16 x i32> zeroinitializer // CHECK: ret <16 x i8> [[LANE]] uint8x16_t test_vld1q_dup_u8(uint8_t const * a) { @@ -4088,7 +4088,7 @@ // CHECK: [[TMP0:%.*]] = bitcast i16* %a to i8* // CHECK: [[TMP1:%.*]] = bitcast i8* [[TMP0]] to i16* // CHECK: [[TMP2:%.*]] = load i16, i16* [[TMP1]], align 2 -// CHECK: [[TMP3:%.*]] = insertelement <8 x i16> undef, i16 [[TMP2]], i32 0 +// CHECK: [[TMP3:%.*]] = insertelement <8 x i16> poison, i16 [[TMP2]], i32 0 // CHECK: [[LANE:%.*]] = shufflevector <8 x i16> [[TMP3]], <8 x i16> [[TMP3]], <8 x i32> zeroinitializer // CHECK: ret <8 x i16> [[LANE]] uint16x8_t test_vld1q_dup_u16(uint16_t const * a) { @@ -4099,7 +4099,7 @@ // CHECK: [[TMP0:%.*]] = bitcast i32* %a to i8* // CHECK: [[TMP1:%.*]] = bitcast i8* [[TMP0]] to i32* // CHECK: [[TMP2:%.*]] = load i32, i32* [[TMP1]], align 4 -// CHECK: [[TMP3:%.*]] = insertelement <4 x i32> undef, i32 [[TMP2]], i32 0 +// CHECK: [[TMP3:%.*]] = insertelement <4 x i32> poison, i32 [[TMP2]], i32 0 // CHECK: [[LANE:%.*]] = shufflevector <4 x i32> [[TMP3]], <4 x i32> [[TMP3]], <4 x i32> zeroinitializer // CHECK: ret <4 x i32> [[LANE]] uint32x4_t test_vld1q_dup_u32(uint32_t const * a) { @@ -4110,7 +4110,7 @@ // CHECK: [[TMP0:%.*]] = bitcast i64* %a to i8* // CHECK: [[TMP1:%.*]] = bitcast i8* [[TMP0]] to i64* // CHECK: [[TMP2:%.*]] = load i64, i64* [[TMP1]], align 4 -// CHECK: [[TMP3:%.*]] = insertelement <2 x i64> undef, i64 [[TMP2]], i32 0 +// CHECK: [[TMP3:%.*]] = insertelement <2 x i64> poison, i64 [[TMP2]], i32 0 // CHECK: [[LANE:%.*]] = shufflevector <2 x i64> [[TMP3]], <2 x i64> [[TMP3]], <2 x i32> zeroinitializer // CHECK: ret <2 x i64> [[LANE]] uint64x2_t test_vld1q_dup_u64(uint64_t const * a) { @@ -4119,7 +4119,7 @@ // CHECK-LABEL: @test_vld1q_dup_s8( // CHECK: [[TMP0:%.*]] = load i8, i8* %a, align 1 -// CHECK: [[TMP1:%.*]] = insertelement <16 x i8> undef, i8 [[TMP0]], i32 0 +// CHECK: [[TMP1:%.*]] = insertelement <16 x i8> poison, i8 [[TMP0]], i32 0 // CHECK: [[LANE:%.*]] = shufflevector <16 x i8> [[TMP1]], <16 x i8> [[TMP1]], <16 x i32> zeroinitializer // CHECK: ret <16 x i8> [[LANE]] int8x16_t test_vld1q_dup_s8(int8_t const * a) { @@ -4130,7 +4130,7 @@ // CHECK: [[TMP0:%.*]] = bitcast i16* %a to i8* // CHECK: [[TMP1:%.*]] = bitcast i8* [[TMP0]] to i16* // CHECK: [[TMP2:%.*]] = load i16, i16* [[TMP1]], align 2 -// CHECK: [[TMP3:%.*]] = insertelement <8 x i16> undef, i16 [[TMP2]], i32 0 +// CHECK: [[TMP3:%.*]] = insertelement <8 x i16> poison, i16 [[TMP2]], i32 0 // CHECK: [[LANE:%.*]] = shufflevector <8 x i16> [[TMP3]], <8 x i16> [[TMP3]], <8 x i32> zeroinitializer // CHECK: ret <8 x i16> [[LANE]] int16x8_t test_vld1q_dup_s16(int16_t const * a) { @@ -4141,7 +4141,7 @@ // CHECK: [[TMP0:%.*]] = bitcast i32* %a to i8* // CHECK: [[TMP1:%.*]] = bitcast i8* [[TMP0]] to i32* // CHECK: [[TMP2:%.*]] = load i32, i32* [[TMP1]], align 4 -// CHECK: [[TMP3:%.*]] = insertelement <4 x i32> undef, i32 [[TMP2]], i32 0 +// CHECK: [[TMP3:%.*]] = insertelement <4 x i32> poison, i32 [[TMP2]], i32 0 // CHECK: [[LANE:%.*]] = shufflevector <4 x i32> [[TMP3]], <4 x i32> [[TMP3]], <4 x i32> zeroinitializer // CHECK: ret <4 x i32> [[LANE]] int32x4_t test_vld1q_dup_s32(int32_t const * a) { @@ -4152,7 +4152,7 @@ // CHECK: [[TMP0:%.*]] = bitcast i64* %a to i8* // CHECK: