@@ -529,8 +529,9 @@ entry:
529529define ptr @test10 () {
530530; CHECK-LABEL: @test10(
531531; CHECK-NEXT: entry:
532- ; CHECK-NEXT: [[TMP0:%.*]] = ptrtoint ptr null to i64
533- ; CHECK-NEXT: ret ptr null
532+ ; CHECK-NEXT: [[TMP0:%.*]] = bitcast <8 x i8> zeroinitializer to i64
533+ ; CHECK-NEXT: [[TMP1:%.*]] = inttoptr i64 [[TMP0]] to ptr
534+ ; CHECK-NEXT: ret ptr [[TMP1]]
534535;
535536entry:
536537 %a = alloca [8 x i8 ]
@@ -1075,26 +1076,13 @@ define void @PR14059.1(ptr %d) {
10751076;
10761077; CHECK-LABEL: @PR14059.1(
10771078; CHECK-NEXT: entry:
1078- ; CHECK-NEXT: [[TMP0:%.*]] = bitcast double undef to i64
1079- ; CHECK-NEXT: [[X_SROA_0_I_0_INSERT_MASK:%.*]] = and i64 [[TMP0]], -4294967296
1080- ; CHECK-NEXT: [[X_SROA_0_I_0_INSERT_INSERT:%.*]] = or i64 [[X_SROA_0_I_0_INSERT_MASK]], 0
1081- ; CHECK-NEXT: [[TMP1:%.*]] = bitcast i64 [[X_SROA_0_I_0_INSERT_INSERT]] to double
1082- ; CHECK-NEXT: [[TMP2:%.*]] = bitcast double [[TMP1]] to i64
1083- ; CHECK-NEXT: [[X_SROA_0_I_2_INSERT_MASK:%.*]] = and i64 [[TMP2]], -281474976645121
1084- ; CHECK-NEXT: [[X_SROA_0_I_2_INSERT_INSERT:%.*]] = or i64 [[X_SROA_0_I_2_INSERT_MASK]], 0
1085- ; CHECK-NEXT: [[TMP3:%.*]] = bitcast i64 [[X_SROA_0_I_2_INSERT_INSERT]] to double
1086- ; CHECK-NEXT: [[TMP4:%.*]] = bitcast double [[TMP3]] to i64
1087- ; CHECK-NEXT: [[X_SROA_0_I_4_COPYLOAD:%.*]] = load i32, ptr [[D:%.*]], align 1
1088- ; CHECK-NEXT: [[TMP5:%.*]] = bitcast double 0.000000e+00 to i64
1089- ; CHECK-NEXT: [[X_SROA_0_I_4_INSERT_EXT:%.*]] = zext i32 [[X_SROA_0_I_4_COPYLOAD]] to i64
1090- ; CHECK-NEXT: [[X_SROA_0_I_4_INSERT_SHIFT:%.*]] = shl i64 [[X_SROA_0_I_4_INSERT_EXT]], 32
1091- ; CHECK-NEXT: [[X_SROA_0_I_4_INSERT_MASK3:%.*]] = and i64 [[TMP5]], 4294967295
1092- ; CHECK-NEXT: [[X_SROA_0_I_4_INSERT_INSERT4:%.*]] = or i64 [[X_SROA_0_I_4_INSERT_MASK3]], [[X_SROA_0_I_4_INSERT_SHIFT]]
1093- ; CHECK-NEXT: [[TMP6:%.*]] = bitcast i64 [[X_SROA_0_I_4_INSERT_INSERT4]] to double
1094- ; CHECK-NEXT: [[TMP7:%.*]] = bitcast double [[TMP6]] to i64
1095- ; CHECK-NEXT: [[X_SROA_0_I_4_INSERT_MASK:%.*]] = and i64 [[TMP7]], 4294967295
1096- ; CHECK-NEXT: [[X_SROA_0_I_4_INSERT_INSERT:%.*]] = or i64 [[X_SROA_0_I_4_INSERT_MASK]], 4607182418800017408
1097- ; CHECK-NEXT: [[TMP8:%.*]] = bitcast i64 [[X_SROA_0_I_4_INSERT_INSERT]] to double
1079+ ; CHECK-NEXT: [[X_SROA_0_I_SROA_0_0_VECBLEND:%.*]] = select <8 x i1> <i1 true, i1 true, i1 true, i1 true, i1 false, i1 false, i1 false, i1 false>, <8 x i8> <i8 0, i8 0, i8 0, i8 0, i8 undef, i8 undef, i8 undef, i8 undef>, <8 x i8> undef
1080+ ; CHECK-NEXT: [[X_SROA_0_I_SROA_0_2_VECBLEND:%.*]] = select <8 x i1> <i1 false, i1 false, i1 true, i1 true, i1 true, i1 true, i1 false, i1 false>, <8 x i8> <i8 undef, i8 undef, i8 0, i8 0, i8 0, i8 0, i8 undef, i8 undef>, <8 x i8> [[X_SROA_0_I_SROA_0_0_VECBLEND]]
1081+ ; CHECK-NEXT: [[X_SROA_0_I_SROA_0_4_COPYLOAD:%.*]] = load <4 x i8>, ptr [[D:%.*]], align 1
1082+ ; CHECK-NEXT: [[X_SROA_0_I_SROA_0_4_VEC_EXPAND:%.*]] = shufflevector <4 x i8> [[X_SROA_0_I_SROA_0_4_COPYLOAD]], <4 x i8> poison, <8 x i32> <i32 poison, i32 poison, i32 poison, i32 poison, i32 0, i32 1, i32 2, i32 3>
1083+ ; CHECK-NEXT: [[X_SROA_0_I_SROA_0_4_VECBLEND2:%.*]] = select <8 x i1> <i1 false, i1 false, i1 false, i1 false, i1 true, i1 true, i1 true, i1 true>, <8 x i8> [[X_SROA_0_I_SROA_0_4_VEC_EXPAND]], <8 x i8> zeroinitializer
1084+ ; CHECK-NEXT: [[X_SROA_0_I_SROA_0_4_VECBLEND:%.*]] = select <8 x i1> <i1 false, i1 false, i1 false, i1 false, i1 true, i1 true, i1 true, i1 true>, <8 x i8> <i8 undef, i8 undef, i8 undef, i8 undef, i8 extractelement (<4 x i8> bitcast (<1 x i32> splat (i32 1072693248) to <4 x i8>), i32 0), i8 extractelement (<4 x i8> bitcast (<1 x i32> splat (i32 1072693248) to <4 x i8>), i32 1), i8 extractelement (<4 x i8> bitcast (<1 x i32> splat (i32 1072693248) to <4 x i8>), i32 2), i8 extractelement (<4 x i8> bitcast (<1 x i32> splat (i32 1072693248) to <4 x i8>), i32 3)>, <8 x i8> [[X_SROA_0_I_SROA_0_4_VECBLEND2]]
1085+ ; CHECK-NEXT: [[TMP8:%.*]] = bitcast <8 x i8> [[X_SROA_0_I_SROA_0_4_VECBLEND]] to double
10981086; CHECK-NEXT: [[ACCUM_REAL_I:%.*]] = load double, ptr [[D]], align 8
10991087; CHECK-NEXT: [[ADD_R_I:%.*]] = fadd double [[ACCUM_REAL_I]], [[TMP8]]
11001088; CHECK-NEXT: store double [[ADD_R_I]], ptr [[D]], align 8
@@ -1332,10 +1320,10 @@ define void @PR15674(ptr %data, ptr %src, i32 %size) {
13321320; CHECK-NEXT: entry:
13331321; CHECK-NEXT: [[TMP_SROA_0:%.*]] = alloca i32, align 4
13341322; CHECK-NEXT: switch i32 [[SIZE:%.*]], label [[END:%.*]] [
1335- ; CHECK-NEXT: i32 4, label [[BB4:%.*]]
1336- ; CHECK-NEXT: i32 3, label [[BB3:%.*]]
1337- ; CHECK-NEXT: i32 2, label [[BB2:%.*]]
1338- ; CHECK-NEXT: i32 1, label [[BB1:%.*]]
1323+ ; CHECK-NEXT: i32 4, label [[BB4:%.*]]
1324+ ; CHECK-NEXT: i32 3, label [[BB3:%.*]]
1325+ ; CHECK-NEXT: i32 2, label [[BB2:%.*]]
1326+ ; CHECK-NEXT: i32 1, label [[BB1:%.*]]
13391327; CHECK-NEXT: ]
13401328; CHECK: bb4:
13411329; CHECK-NEXT: [[SRC_GEP3:%.*]] = getelementptr inbounds i8, ptr [[SRC:%.*]], i32 3
0 commit comments