@@ -1496,50 +1496,53 @@ llvm.func @elements_constant_3d_array() -> !llvm.array<2 x array<2 x array<2 x i
14961496// CHECK-LABEL: @atomicrmw
14971497llvm.func @atomicrmw (
14981498 %f32_ptr : !llvm.ptr , %f32 : f32 ,
1499+ %f16_vec_ptr : !llvm.ptr , %f16_vec : vector <2 xf16 >,
14991500 %i32_ptr : !llvm.ptr , %i32 : i32 ) {
15001501 // CHECK: atomicrmw fadd ptr %{{.*}}, float %{{.*}} monotonic
15011502 %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 >
15021505 // 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
15041507 // 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
15061509 // 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
15081511 // 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
15101513 // 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
15121515 // 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
15141517 // 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
15161519 // 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
15181521 // 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
15201523 // 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
15221525 // 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
15241527 // 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
15261529 // 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
15281531 // 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
15301533 // 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
15321535 // 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
15341537 // 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
15361539 // 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
15381541
15391542 // CHECK: atomicrmw volatile
15401543 // CHECK-SAME: syncscope("singlethread")
15411544 // 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
15431546 llvm.return
15441547}
15451548
0 commit comments