; 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:    sete %al
; CHECK-NEXT:    testq %rsi, %rsi
; CHECK-NEXT:    setne %cl
; CHECK-NEXT:    andb %al, %cl
; CHECK-NEXT:    cmpb $1, %cl
; CHECK-NEXT:    je func2 # TAILCALL
; CHECK-NEXT:  # %bb.1:
; 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:    setne %cl
; CHECK-NEXT:    andb %al, %cl
; CHECK-NEXT:    cmpb $1, %cl
; CHECK-NEXT:    je func2 # TAILCALL
; CHECK-NEXT:  # %bb.1:
; 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:    notb %al
; CHECK-NEXT:    testq %rsi, %rsi
; CHECK-NEXT:    sete %cl
; CHECK-NEXT:    orb %al, %cl
; CHECK-NEXT:    testb $1, %cl
; CHECK-NEXT:    je func2 # TAILCALL
; CHECK-NEXT:  # %bb.1:
; 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:    sete %al
; CHECK-NEXT:    notb %al
; CHECK-NEXT:    testq %rsi, %rsi
; CHECK-NEXT:    sete %cl
; CHECK-NEXT:    orb %al, %cl
; CHECK-NEXT:    testb $1, %cl
; CHECK-NEXT:    je func2 # TAILCALL
; CHECK-NEXT:  # %bb.1:
; 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()
