@@ -358,10 +358,14 @@ func.func @const_fold_scalar_iaddcarry() -> (!spirv.struct<(i32, i32)>, !spirv.s
358
358
359
359
// CHECK-DAG: %[[C0:.*]] = spirv.Constant 0
360
360
// CHECK-DAG: %[[CN3:.*]] = spirv.Constant -3
361
- // CHECK-DAG: %[[CC_CN3_C0:.*]] = spirv.CompositeConstruct %[[CN3]], %[[C0]]
361
+ // CHECK-DAG: %[[UNDEF1:.*]] = spirv.Undef
362
+ // CHECK-DAG: %[[INTER1:.*]] = spirv.CompositeInsert %[[CN3]], %[[UNDEF1]][0 : i32]
363
+ // CHECK-DAG: %[[CC_CN3_C0:.*]] = spirv.CompositeInsert %[[C0]], %[[INTER1]][1 : i32]
362
364
// CHECK-DAG: %[[C1:.*]] = spirv.Constant 1
363
365
// CHECK-DAG: %[[CN13:.*]] = spirv.Constant -13
364
- // CHECK-DAG: %[[CC_CN13_C1:.*]] = spirv.CompositeConstruct %[[CN13]], %[[C1]]
366
+ // CHECK-DAG: %[[UNDEF2:.*]] = spirv.Undef
367
+ // CHECK-DAG: %[[INTER2:.*]] = spirv.CompositeInsert %[[CN13]], %[[UNDEF2]][0 : i32]
368
+ // CHECK-DAG: %[[CC_CN13_C1:.*]] = spirv.CompositeInsert %[[C1]], %[[INTER2]][1 : i32]
365
369
%0 = spirv.IAddCarry %c5 , %cn8 : !spirv.struct <(i32 , i32 )>
366
370
%1 = spirv.IAddCarry %cn5 , %cn8 : !spirv.struct <(i32 , i32 )>
367
371
@@ -376,7 +380,9 @@ func.func @const_fold_vector_iaddcarry() -> !spirv.struct<(vector<3xi32>, vector
376
380
377
381
// CHECK-DAG: %[[CV1:.*]] = spirv.Constant dense<[-3, -11, 0]>
378
382
// CHECK-DAG: %[[CV2:.*]] = spirv.Constant dense<[0, 1, 1]>
379
- // CHECK-DAG: %[[CC_CV1_CV2:.*]] = spirv.CompositeConstruct %[[CV1]], %[[CV2]]
383
+ // CHECK-DAG: %[[UNDEF:.*]] = spirv.Undef
384
+ // CHECK-DAG: %[[INTER:.*]] = spirv.CompositeInsert %[[CV1]], %[[UNDEF]][0 : i32]
385
+ // CHECK-DAG: %[[CC_CV1_CV2:.*]] = spirv.CompositeInsert %[[CV2]], %[[INTER]][1 : i32]
380
386
%0 = spirv.IAddCarry %v0 , %v1 : !spirv.struct <(vector <3 xi32 >, vector <3 xi32 >)>
381
387
382
388
// CHECK: return %[[CC_CV1_CV2]]
@@ -472,10 +478,14 @@ func.func @const_fold_scalar_smulextended() -> (!spirv.struct<(i32, i32)>, !spir
472
478
473
479
// CHECK-DAG: %[[CN40:.*]] = spirv.Constant -40
474
480
// CHECK-DAG: %[[CN1:.*]] = spirv.Constant -1
475
- // CHECK-DAG: %[[CC_CN40_CN1:.*]] = spirv.CompositeConstruct %[[CN40]], %[[CN1]]
481
+ // CHECK-DAG: %[[UNDEF1:.*]] = spirv.Undef
482
+ // CHECK-DAG: %[[INTER1:.*]] = spirv.CompositeInsert %[[CN40]], %[[UNDEF1]][0 : i32]
483
+ // CHECK-DAG: %[[CC_CN40_CN1:.*]] = spirv.CompositeInsert %[[CN1]], %[[INTER1]]
476
484
// CHECK-DAG: %[[C40:.*]] = spirv.Constant 40
477
485
// CHECK-DAG: %[[C0:.*]] = spirv.Constant 0
478
- // CHECK-DAG: %[[CC_C40_C0:.*]] = spirv.CompositeConstruct %[[C40]], %[[C0]]
486
+ // CHECK-DAG: %[[UNDEF2:.*]] = spirv.Undef
487
+ // CHECK-DAG: %[[INTER2:.*]] = spirv.CompositeInsert %[[C40]], %[[UNDEF2]][0 : i32]
488
+ // CHECK-DAG: %[[CC_C40_C0:.*]] = spirv.CompositeInsert %[[C0]], %[[INTER2]][1 : i32]
479
489
%0 = spirv.SMulExtended %c5 , %cn8 : !spirv.struct <(i32 , i32 )>
480
490
%1 = spirv.SMulExtended %cn5 , %cn8 : !spirv.struct <(i32 , i32 )>
481
491
@@ -490,7 +500,9 @@ func.func @const_fold_vector_smulextended() -> !spirv.struct<(vector<3xi32>, vec
490
500
491
501
// CHECK-DAG: %[[CV1:.*]] = spirv.Constant dense<[2147483643, 40, -1]>
492
502
// CHECK-DAG: %[[CV2:.*]] = spirv.Constant dense<[2, 0, -1]>
493
- // CHECK-DAG: %[[CC_CV1_CV2:.*]] = spirv.CompositeConstruct %[[CV1]], %[[CV2]]
503
+ // CHECK-DAG: %[[UNDEF:.*]] = spirv.Undef
504
+ // CHECK-DAG: %[[INTER:.*]] = spirv.CompositeInsert %[[CV1]], %[[UNDEF]][0 : i32]
505
+ // CHECK-DAG: %[[CC_CV1_CV2:.*]] = spirv.CompositeInsert %[[CV2]], %[[INTER]][1 : i32]
494
506
%0 = spirv.SMulExtended %v0 , %v1 : !spirv.struct <(vector <3 xi32 >, vector <3 xi32 >)>
495
507
496
508
// CHECK: return %[[CC_CV1_CV2]]
@@ -533,12 +545,17 @@ func.func @const_fold_scalar_umulextended() -> (!spirv.struct<(i32, i32)>, !spir
533
545
%cn5 = spirv.Constant -5 : i32
534
546
%cn8 = spirv.Constant -8 : i32
535
547
548
+
536
549
// CHECK-DAG: %[[C40:.*]] = spirv.Constant 40
537
550
// CHECK-DAG: %[[CN13:.*]] = spirv.Constant -13
538
- // CHECK-DAG: %[[CC_C40_CN13:.*]] = spirv.CompositeConstruct %[[C40]], %[[CN13]]
539
551
// CHECK-DAG: %[[CN40:.*]] = spirv.Constant -40
540
552
// CHECK-DAG: %[[C4:.*]] = spirv.Constant 4
541
- // CHECK-DAG: %[[CC_CN40_C4:.*]] = spirv.CompositeConstruct %[[CN40]], %[[C4]]
553
+ // CHECK-DAG: %[[UNDEF1:.*]] = spirv.Undef
554
+ // CHECK-DAG: %[[INTER1:.*]] = spirv.CompositeInsert %[[CN40]], %[[UNDEF1]][0 : i32]
555
+ // CHECK-DAG: %[[CC_CN40_C4:.*]] = spirv.CompositeInsert %[[C4]], %[[INTER1]][1 : i32]
556
+ // CHECK-DAG: %[[UNDEF2:.*]] = spirv.Undef
557
+ // CHECK-DAG: %[[INTER2:.*]] = spirv.CompositeInsert %[[C40]], %[[UNDEF2]][0 : i32]
558
+ // CHECK-DAG: %[[CC_C40_CN13:.*]] = spirv.CompositeInsert %[[CN13]], %[[INTER2]][1 : i32]
542
559
%0 = spirv.UMulExtended %c5 , %cn8 : !spirv.struct <(i32 , i32 )>
543
560
%1 = spirv.UMulExtended %cn5 , %cn8 : !spirv.struct <(i32 , i32 )>
544
561
@@ -553,7 +570,9 @@ func.func @const_fold_vector_umulextended() -> !spirv.struct<(vector<3xi32>, vec
553
570
554
571
// CHECK-DAG: %[[CV1:.*]] = spirv.Constant dense<[2147483643, 40, -1]>
555
572
// CHECK-DAG: %[[CV2:.*]] = spirv.Constant dense<[2, -13, 0]>
556
- // CHECK-DAG: %[[CC_CV1_CV2:.*]] = spirv.CompositeConstruct %[[CV1]], %[[CV2]]
573
+ // CHECK-DAG: %[[UNDEF:.*]] = spirv.Undef
574
+ // CHECK-DAG: %[[INTER:.*]] = spirv.CompositeInsert %[[CV1]], %[[UNDEF]]
575
+ // CHECK-DAG: %[[CC_CV1_CV2:.*]] = spirv.CompositeInsert %[[CV2]], %[[INTER]]
557
576
%0 = spirv.UMulExtended %v0 , %v1 : !spirv.struct <(vector <3 xi32 >, vector <3 xi32 >)>
558
577
559
578
// CHECK: return %[[CC_CV1_CV2]]
0 commit comments