@@ -1496,50 +1496,53 @@ llvm.func @elements_constant_3d_array() -> !llvm.array<2 x array<2 x array<2 x i
1496
1496
// CHECK-LABEL: @atomicrmw
1497
1497
llvm.func @atomicrmw (
1498
1498
%f32_ptr : !llvm.ptr , %f32 : f32 ,
1499
+ %f16_vec_ptr : !llvm.ptr , %f16_vec : vector <2 xf16 >,
1499
1500
%i32_ptr : !llvm.ptr , %i32 : i32 ) {
1500
1501
// CHECK: atomicrmw fadd ptr %{{.*}}, float %{{.*}} monotonic
1501
1502
%0 = llvm.atomicrmw fadd %f32_ptr , %f32 monotonic : !llvm.ptr , f32
1503
+ // CHECK: atomicrmw fadd ptr %{{.*}}, <2 x half> %{{.*}} monotonic
1504
+ %1 = llvm.atomicrmw fadd %f16_vec_ptr , %f16_vec monotonic : !llvm.ptr , vector <2 xf16 >
1502
1505
// CHECK: atomicrmw fsub ptr %{{.*}}, float %{{.*}} monotonic
1503
- %1 = llvm.atomicrmw fsub %f32_ptr , %f32 monotonic : !llvm.ptr , f32
1506
+ %2 = llvm.atomicrmw fsub %f32_ptr , %f32 monotonic : !llvm.ptr , f32
1504
1507
// CHECK: atomicrmw fmax ptr %{{.*}}, float %{{.*}} monotonic
1505
- %2 = llvm.atomicrmw fmax %f32_ptr , %f32 monotonic : !llvm.ptr , f32
1508
+ %3 = llvm.atomicrmw fmax %f32_ptr , %f32 monotonic : !llvm.ptr , f32
1506
1509
// CHECK: atomicrmw fmin ptr %{{.*}}, float %{{.*}} monotonic
1507
- %3 = llvm.atomicrmw fmin %f32_ptr , %f32 monotonic : !llvm.ptr , f32
1510
+ %4 = llvm.atomicrmw fmin %f32_ptr , %f32 monotonic : !llvm.ptr , f32
1508
1511
// CHECK: atomicrmw xchg ptr %{{.*}}, float %{{.*}} monotonic
1509
- %4 = llvm.atomicrmw xchg %f32_ptr , %f32 monotonic : !llvm.ptr , f32
1512
+ %5 = llvm.atomicrmw xchg %f32_ptr , %f32 monotonic : !llvm.ptr , f32
1510
1513
// CHECK: atomicrmw add ptr %{{.*}}, i32 %{{.*}} acquire
1511
- %5 = llvm.atomicrmw add %i32_ptr , %i32 acquire : !llvm.ptr , i32
1514
+ %6 = llvm.atomicrmw add %i32_ptr , %i32 acquire : !llvm.ptr , i32
1512
1515
// CHECK: atomicrmw sub ptr %{{.*}}, i32 %{{.*}} release
1513
- %6 = llvm.atomicrmw sub %i32_ptr , %i32 release : !llvm.ptr , i32
1516
+ %7 = llvm.atomicrmw sub %i32_ptr , %i32 release : !llvm.ptr , i32
1514
1517
// CHECK: atomicrmw and ptr %{{.*}}, i32 %{{.*}} acq_rel
1515
- %7 = llvm.atomicrmw _and %i32_ptr , %i32 acq_rel : !llvm.ptr , i32
1518
+ %8 = llvm.atomicrmw _and %i32_ptr , %i32 acq_rel : !llvm.ptr , i32
1516
1519
// CHECK: atomicrmw nand ptr %{{.*}}, i32 %{{.*}} seq_cst
1517
- %8 = llvm.atomicrmw nand %i32_ptr , %i32 seq_cst : !llvm.ptr , i32
1520
+ %9 = llvm.atomicrmw nand %i32_ptr , %i32 seq_cst : !llvm.ptr , i32
1518
1521
// CHECK: atomicrmw or ptr %{{.*}}, i32 %{{.*}} monotonic
1519
- %9 = llvm.atomicrmw _or %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1522
+ %10 = llvm.atomicrmw _or %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1520
1523
// CHECK: atomicrmw xor ptr %{{.*}}, i32 %{{.*}} monotonic
1521
- %10 = llvm.atomicrmw _xor %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1524
+ %11 = llvm.atomicrmw _xor %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1522
1525
// CHECK: atomicrmw max ptr %{{.*}}, i32 %{{.*}} monotonic
1523
- %11 = llvm.atomicrmw max %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1526
+ %12 = llvm.atomicrmw max %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1524
1527
// CHECK: atomicrmw min ptr %{{.*}}, i32 %{{.*}} monotonic
1525
- %12 = llvm.atomicrmw min %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1528
+ %13 = llvm.atomicrmw min %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1526
1529
// CHECK: atomicrmw umax ptr %{{.*}}, i32 %{{.*}} monotonic
1527
- %13 = llvm.atomicrmw umax %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1530
+ %14 = llvm.atomicrmw umax %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1528
1531
// CHECK: atomicrmw umin ptr %{{.*}}, i32 %{{.*}} monotonic
1529
- %14 = llvm.atomicrmw umin %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1532
+ %15 = llvm.atomicrmw umin %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1530
1533
// CHECK: atomicrmw uinc_wrap ptr %{{.*}}, i32 %{{.*}} monotonic
1531
- %15 = llvm.atomicrmw uinc_wrap %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1534
+ %16 = llvm.atomicrmw uinc_wrap %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1532
1535
// CHECK: atomicrmw udec_wrap ptr %{{.*}}, i32 %{{.*}} monotonic
1533
- %16 = llvm.atomicrmw udec_wrap %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1536
+ %17 = llvm.atomicrmw udec_wrap %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1534
1537
// CHECK: atomicrmw usub_cond ptr %{{.*}}, i32 %{{.*}} monotonic
1535
- %17 = llvm.atomicrmw usub_cond %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1538
+ %18 = llvm.atomicrmw usub_cond %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1536
1539
// CHECK: atomicrmw usub_sat ptr %{{.*}}, i32 %{{.*}} monotonic
1537
- %18 = llvm.atomicrmw usub_sat %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1540
+ %19 = llvm.atomicrmw usub_sat %i32_ptr , %i32 monotonic : !llvm.ptr , i32
1538
1541
1539
1542
// CHECK: atomicrmw volatile
1540
1543
// CHECK-SAME: syncscope("singlethread")
1541
1544
// CHECK-SAME: align 8
1542
- %19 = llvm.atomicrmw volatile udec_wrap %i32_ptr , %i32 syncscope (" singlethread" ) monotonic {alignment = 8 : i64 } : !llvm.ptr , i32
1545
+ %20 = llvm.atomicrmw volatile udec_wrap %i32_ptr , %i32 syncscope (" singlethread" ) monotonic {alignment = 8 : i64 } : !llvm.ptr , i32
1543
1546
llvm.return
1544
1547
}
1545
1548
0 commit comments