@@ -1392,6 +1392,38 @@ define <4 x ptr> @ptrLoadStoreTysPtr(ptr %init, i64 %val2) {
1392
1392
ret <4 x ptr > %sroaval
1393
1393
}
1394
1394
1395
+ define <4 x i32 > @validLoadStoreTy ([2 x i64 ] %cond.coerce ) {
1396
+ ; CHECK-LABEL: @validLoadStoreTy(
1397
+ ; CHECK-NEXT: entry:
1398
+ ; CHECK-NEXT: [[COND_COERCE_FCA_0_EXTRACT:%.*]] = extractvalue [2 x i64] [[COND_COERCE:%.*]], 0
1399
+ ; CHECK-NEXT: [[COND_SROA_0_0_VEC_INSERT:%.*]] = insertelement <2 x i64> undef, i64 [[COND_COERCE_FCA_0_EXTRACT]], i32 0
1400
+ ; CHECK-NEXT: [[COND_COERCE_FCA_1_EXTRACT:%.*]] = extractvalue [2 x i64] [[COND_COERCE]], 1
1401
+ ; CHECK-NEXT: [[COND_SROA_0_8_VEC_INSERT:%.*]] = insertelement <2 x i64> [[COND_SROA_0_0_VEC_INSERT]], i64 [[COND_COERCE_FCA_1_EXTRACT]], i32 1
1402
+ ; CHECK-NEXT: [[TMP0:%.*]] = bitcast <2 x i64> [[COND_SROA_0_8_VEC_INSERT]] to <4 x i32>
1403
+ ; CHECK-NEXT: ret <4 x i32> [[TMP0]]
1404
+ ;
1405
+ ; DEBUG-LABEL: @validLoadStoreTy(
1406
+ ; DEBUG-NEXT: entry:
1407
+ ; DEBUG-NEXT: call void @llvm.dbg.value(metadata ptr undef, metadata [[META553:![0-9]+]], metadata !DIExpression()), !dbg [[DBG557:![0-9]+]]
1408
+ ; DEBUG-NEXT: call void @llvm.dbg.value(metadata ptr undef, metadata [[META554:![0-9]+]], metadata !DIExpression()), !dbg [[DBG558:![0-9]+]]
1409
+ ; DEBUG-NEXT: [[COND_COERCE_FCA_0_EXTRACT:%.*]] = extractvalue [2 x i64] [[COND_COERCE:%.*]], 0, !dbg [[DBG559:![0-9]+]]
1410
+ ; DEBUG-NEXT: [[COND_SROA_0_0_VEC_INSERT:%.*]] = insertelement <2 x i64> undef, i64 [[COND_COERCE_FCA_0_EXTRACT]], i32 0, !dbg [[DBG559]]
1411
+ ; DEBUG-NEXT: [[COND_COERCE_FCA_1_EXTRACT:%.*]] = extractvalue [2 x i64] [[COND_COERCE]], 1, !dbg [[DBG559]]
1412
+ ; DEBUG-NEXT: [[COND_SROA_0_8_VEC_INSERT:%.*]] = insertelement <2 x i64> [[COND_SROA_0_0_VEC_INSERT]], i64 [[COND_COERCE_FCA_1_EXTRACT]], i32 1, !dbg [[DBG559]]
1413
+ ; DEBUG-NEXT: call void @llvm.dbg.value(metadata ptr undef, metadata [[META555:![0-9]+]], metadata !DIExpression()), !dbg [[DBG560:![0-9]+]]
1414
+ ; DEBUG-NEXT: [[TMP0:%.*]] = bitcast <2 x i64> [[COND_SROA_0_8_VEC_INSERT]] to <4 x i32>, !dbg [[DBG561:![0-9]+]]
1415
+ ; DEBUG-NEXT: call void @llvm.dbg.value(metadata <4 x i32> [[TMP0]], metadata [[META556:![0-9]+]], metadata !DIExpression()), !dbg [[DBG561]]
1416
+ ; DEBUG-NEXT: ret <4 x i32> [[TMP0]], !dbg [[DBG562:![0-9]+]]
1417
+ ;
1418
+ entry:
1419
+ %cond = alloca <4 x i32 >, align 8
1420
+ %coerce.dive2 = getelementptr inbounds <4 x i32 >, ptr %cond , i32 0 , i32 0
1421
+ store [2 x i64 ] %cond.coerce , ptr %coerce.dive2 , align 8
1422
+ %m5 = getelementptr inbounds <4 x i32 >, ptr %cond , i32 0 , i32 0
1423
+ %0 = load <4 x i32 >, ptr %m5 , align 8
1424
+ ret <4 x i32 > %0
1425
+ }
1426
+
1395
1427
declare void @llvm.memcpy.p0.p0.i64 (ptr , ptr , i64 , i1 )
1396
1428
declare void @llvm.lifetime.end.p0 (i64 , ptr )
1397
1429
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
0 commit comments