; RUN: llc -mtriple=x86_64-pc-linux-gnu %s -o - | FileCheck %s

; C code this came from
;bool cas(float volatile *p, float *expected, float desired) {
;  bool success;
;  __asm__ __volatile__("lock; cmpxchg %[desired], %[mem]; "
;                       "mov %[expected], %[expected_out]; "
;                       "sete %[success]"
;                       : [success] "=a" (success),
;                         [expected_out] "=rm" (*expected)
;                       : [expected] "a" (*expected),
;                         [desired] "q" (desired),
;                         [mem] "m" (*p)
;                       : "memory", "cc");
;  return success;
;}

define zeroext i1 @cas(float* %p, float* %expected, float %desired) nounwind {
entry:
  %p.addr = alloca float*, align 8
  %expected.addr = alloca float*, align 8
  %desired.addr = alloca float, align 4
  %success = alloca i8, align 1
  store float* %p, float** %p.addr, align 8
  store float* %expected, float** %expected.addr, align 8
  store float %desired, float* %desired.addr, align 4
  %0 = load float** %expected.addr, align 8
  %1 = load float** %expected.addr, align 8
  %2 = load float* %1, align 4
  %3 = load float* %desired.addr, align 4
  %4 = load float** %p.addr, align 8
  %5 = call i8 asm sideeffect "lock; cmpxchg $3, $4; mov $2, $1; sete $0", "={ax},=*rm,{ax},q,*m,~{memory},~{cc},~{dirflag},~{fpsr},~{flags}"(float* %0, float %2, float %3, float* %4) nounwind
  store i8 %5, i8* %success, align 1
  %6 = load i8* %success, align 1
  %tobool = trunc i8 %6 to i1
  ret i1 %tobool
}

; CHECK: @cas
; Make sure we're emitting a move from eax.
; CHECK: #APP
; CHECK-NEXT: lock;{{.*}}mov %eax,{{.*}}
; CHECK-NEXT: #NO_APP

define zeroext i1 @cas2(i8* %p, i8* %expected, i1 zeroext %desired) nounwind {
entry:
  %p.addr = alloca i8*, align 8
  %expected.addr = alloca i8*, align 8
  %desired.addr = alloca i8, align 1
  %success = alloca i8, align 1
  store i8* %p, i8** %p.addr, align 8
  store i8* %expected, i8** %expected.addr, align 8
  %frombool = zext i1 %desired to i8
  store i8 %frombool, i8* %desired.addr, align 1
  %0 = load i8** %expected.addr, align 8
  %1 = load i8** %expected.addr, align 8
  %2 = load i8* %1, align 1
  %tobool = trunc i8 %2 to i1
  %3 = load i8* %desired.addr, align 1
  %tobool1 = trunc i8 %3 to i1
  %4 = load i8** %p.addr, align 8
  %5 = call i8 asm sideeffect "lock; cmpxchg $3, $4; mov $2, $1; sete $0", "={ax},=*rm,{ax},q,*m,~{memory},~{cc},~{dirflag},~{fpsr},~{flags}"(i8* %0, i1 %tobool, i1 %tobool1, i8* %4) nounwind
  store i8 %5, i8* %success, align 1
  %6 = load i8* %success, align 1
  %tobool2 = trunc i8 %6 to i1
  ret i1 %tobool2
}

; CHECK: @cas2
; Make sure we're emitting a move from %al here.
; CHECK: #APP
; CHECK-NEXT: lock;{{.*}}mov %al,{{.*}}
; CHECK-NEXT: #NO_APP
