@@ -313,6 +313,38 @@ define i64 @atom19(ptr %subr, i64 %val) {
313313 ret i64 %ret
314314}
315315
316+ define i32 @atom20 (ptr %subr , i32 %val ) {
317+ ; CHECK-LABEL: atom20(
318+ ; CHECK: {
319+ ; CHECK-NEXT: .reg .b32 %r<3>;
320+ ; CHECK-NEXT: .reg .b64 %rd<2>;
321+ ; CHECK-EMPTY:
322+ ; CHECK-NEXT: // %bb.0:
323+ ; CHECK-NEXT: ld.param.u64 %rd1, [atom20_param_0];
324+ ; CHECK-NEXT: ld.param.u32 %r1, [atom20_param_1];
325+ ; CHECK-NEXT: atom.inc.u32 %r2, [%rd1], %r1;
326+ ; CHECK-NEXT: st.param.b32 [func_retval0], %r2;
327+ ; CHECK-NEXT: ret;
328+ %ret = atomicrmw uinc_wrap ptr %subr , i32 %val seq_cst
329+ ret i32 %ret
330+ }
331+
332+ define i32 @atom21 (ptr %subr , i32 %val ) {
333+ ; CHECK-LABEL: atom21(
334+ ; CHECK: {
335+ ; CHECK-NEXT: .reg .b32 %r<3>;
336+ ; CHECK-NEXT: .reg .b64 %rd<2>;
337+ ; CHECK-EMPTY:
338+ ; CHECK-NEXT: // %bb.0:
339+ ; CHECK-NEXT: ld.param.u64 %rd1, [atom21_param_0];
340+ ; CHECK-NEXT: ld.param.u32 %r1, [atom21_param_1];
341+ ; CHECK-NEXT: atom.dec.u32 %r2, [%rd1], %r1;
342+ ; CHECK-NEXT: st.param.b32 [func_retval0], %r2;
343+ ; CHECK-NEXT: ret;
344+ %ret = atomicrmw udec_wrap ptr %subr , i32 %val seq_cst
345+ ret i32 %ret
346+ }
347+
316348declare float @llvm.nvvm.atomic.load.add.f32.p0 (ptr %addr , float %val )
317349
318350; CHECK-LABEL: atomic_add_f32_generic
@@ -409,7 +441,7 @@ define half @atomicrmw_add_f16_generic(ptr %addr, half %val) {
409441; CHECK-NEXT: not.b32 %r2, %r9;
410442; CHECK-NEXT: ld.u32 %r16, [%rd1];
411443; CHECK-NEXT: cvt.f32.f16 %f2, %rs1;
412- ; CHECK-NEXT: $L__BB22_1 : // %atomicrmw.start
444+ ; CHECK-NEXT: $L__BB24_1 : // %atomicrmw.start
413445; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
414446; CHECK-NEXT: shr.u32 %r10, %r16, %r1;
415447; CHECK-NEXT: cvt.u16.u32 %rs2, %r10;
@@ -424,7 +456,7 @@ define half @atomicrmw_add_f16_generic(ptr %addr, half %val) {
424456; CHECK-NEXT: atom.cas.b32 %r5, [%rd1], %r16, %r14;
425457; CHECK-NEXT: setp.ne.s32 %p1, %r5, %r16;
426458; CHECK-NEXT: mov.b32 %r16, %r5;
427- ; CHECK-NEXT: @%p1 bra $L__BB22_1 ;
459+ ; CHECK-NEXT: @%p1 bra $L__BB24_1 ;
428460; CHECK-NEXT: // %bb.2: // %atomicrmw.end
429461; CHECK-NEXT: shr.u32 %r15, %r5, %r1;
430462; CHECK-NEXT: cvt.u16.u32 %rs4, %r15;
0 commit comments