@@ -144,9 +144,11 @@ func testClike8(t: Int, x: CLike8) -> Int {
144
144
// CHECK: br i1
145
145
// CHECK: switch i64 [[ID:%[0-9]+]]
146
146
// CHECK: [[FIRST:%[0-9]+]] = zext i32 %0 to i64
147
+ // CHECK: [[F1:%[0-9]+]] = and i64 [[FIRST]], 4294967295
147
148
// CHECK: [[SECOND:%[0-9]+]] = zext i32 %1 to i64
148
149
// CHECK: [[TEMP:%[0-9]+]] = shl i64 [[SECOND]], 32
149
- // CHECK: [[RESULT:%[0-9]+]] = or i64 [[FIRST]], [[TEMP]]
150
+ // CHECK: [[T1:%[0-9]+]] = and i64 [[TEMP]], -4294967296
151
+ // CHECK: [[RESULT:%[0-9]+]] = or i64 [[F1]], [[T1]]
150
152
// CHECK: bitcast i64 [[RESULT]] to double
151
153
// CHECK: phi double [ 0.000000e+00, {{.*}} ]
152
154
// V7K-LABEL: _$s8test_v7k0A7SingleP
@@ -168,9 +170,11 @@ func testSingleP(x: SinglePayload) -> Double {
168
170
169
171
// CHECK-LABEL: define hidden swiftcc double @"$s8test_v7k0A6MultiP{{.*}}"(i32, i32, i8)
170
172
// CHECK: [[FIRST:%[0-9]+]] = zext i32 %0 to i64
173
+ // CHECK: [[F1:%[0-9]+]] = and i64 [[FIRST]], 4294967295
171
174
// CHECK: [[SECOND:%[0-9]+]] = zext i32 %1 to i64
172
175
// CHECK: [[TEMP:%[0-9]+]] = shl i64 [[SECOND]], 32
173
- // CHECK: [[RESULT:%[0-9]+]] = or i64 [[FIRST]], [[TEMP]]
176
+ // CHECK: [[T1:%[0-9]+]] = and i64 [[TEMP]], -4294967296
177
+ // CHECK: [[RESULT:%[0-9]+]] = or i64 [[F1]], [[T1]]
174
178
// CHECK: bitcast i64 [[RESULT]] to double
175
179
// CHECK: sitofp i32 {{.*}} to double
176
180
// CHECK: phi double [ 0.000000e+00, {{.*}} ]
0 commit comments