; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s

; PR37025
;
;#include <stdatomic.h>
;#include <stdbool.h>
;
;void func2();
;
;void func(_Atomic(unsigned long) * obj, ptr obj2)
;{
;        if (atomic_fetch_sub(obj, 1) == 1 && obj2)
;                func2();
;}

define void @test_dec_select(ptr nocapture %0, ptr readnone %1) {
; CHECK-LABEL: test_dec_select:
; CHECK:       # %bb.0:
; CHECK-NEXT:    lock decq (%rdi)
; CHECK-NEXT:    jne .LBB0_2
; CHECK-NEXT:  # %bb.1:
; CHECK-NEXT:    testq %rsi, %rsi
; CHECK-NEXT:    jne func2 # TAILCALL
; CHECK-NEXT:  .LBB0_2:
; CHECK-NEXT:    retq
  %3 = atomicrmw sub ptr %0, i64 1 seq_cst
  %4 = icmp eq i64 %3, 1
  %5 = icmp ne ptr %1, null
  %6 = select i1 %4, i1 %5, i1 false
  br i1 %6, label %7, label %8

7: ; preds = %2
  tail call void @func2()
  br label %8

8: ; preds = %7, %2
  ret void
}

define void @test_dec_select_commute(ptr nocapture %0, ptr readnone %1) {
; CHECK-LABEL: test_dec_select_commute:
; CHECK:       # %bb.0:
; CHECK-NEXT:    lock decq (%rdi)
; CHECK-NEXT:    sete %al
; CHECK-NEXT:    testq %rsi, %rsi
; CHECK-NEXT:    je .LBB1_2
; CHECK-NEXT:  # %bb.1:
; CHECK-NEXT:    testb %al, %al
; CHECK-NEXT:    jne func2 # TAILCALL
; CHECK-NEXT:  .LBB1_2:
; CHECK-NEXT:    retq
  %3 = atomicrmw sub ptr %0, i64 1 seq_cst
  %4 = icmp eq i64 %3, 1
  %5 = icmp ne ptr %1, null
  %6 = select i1 %5, i1 %4, i1 false
  br i1 %6, label %7, label %8

7: ; preds = %2
  tail call void @func2()
  br label %8

8: ; preds = %7, %2
  ret void
}

define void @test_dec_and(ptr nocapture %0, ptr readnone %1) {
; CHECK-LABEL: test_dec_and:
; CHECK:       # %bb.0:
; CHECK-NEXT:    lock decq (%rdi)
; CHECK-NEXT:    sete %al
; CHECK-NEXT:    testq %rsi, %rsi
; CHECK-NEXT:    je .LBB2_2
; CHECK-NEXT:  # %bb.1:
; CHECK-NEXT:    testb %al, %al
; CHECK-NEXT:    jne func2 # TAILCALL
; CHECK-NEXT:  .LBB2_2:
; CHECK-NEXT:    retq
  %3 = atomicrmw sub ptr %0, i64 1 seq_cst
  %4 = icmp eq i64 %3, 1
  %5 = icmp ne ptr %1, null
  %6 = and i1 %5, %4
  br i1 %6, label %7, label %8

7: ; preds = %2
  tail call void @func2()
  br label %8

8: ; preds = %7, %2
  ret void
}

define void @test_dec_and_commute(ptr nocapture %0, ptr readnone %1) {
; CHECK-LABEL: test_dec_and_commute:
; CHECK:       # %bb.0:
; CHECK-NEXT:    lock decq (%rdi)
; CHECK-NEXT:    jne .LBB3_2
; CHECK-NEXT:  # %bb.1:
; CHECK-NEXT:    testq %rsi, %rsi
; CHECK-NEXT:    jne func2 # TAILCALL
; CHECK-NEXT:  .LBB3_2:
; CHECK-NEXT:    retq
  %3 = atomicrmw sub ptr %0, i64 1 seq_cst
  %4 = icmp eq i64 %3, 1
  %5 = icmp ne ptr %1, null
  %6 = and i1 %4, %5
  br i1 %6, label %7, label %8

7: ; preds = %2
  tail call void @func2()
  br label %8

8: ; preds = %7, %2
  ret void
}

declare dso_local void @func2()
