47 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-apple-macosx10.15.0 -O0 | FileCheck %s3 4define i32 @a() {5; CHECK-LABEL: a:6; CHECK: ## %bb.0: ## %entry7; CHECK-NEXT: pushq %rax8; CHECK-NEXT: .cfi_def_cfa_offset 169; CHECK-NEXT: movb $0, %al10; CHECK-NEXT: callq _b11; CHECK-NEXT: cvtsi2sd %eax, %xmm112; CHECK-NEXT: movq _calloc@GOTPCREL(%rip), %rdx13; CHECK-NEXT: addq $1, %rdx14; CHECK-NEXT: xorl %eax, %eax15; CHECK-NEXT: movl $1, %ecx16; CHECK-NEXT: cmpq $0, %rdx17; CHECK-NEXT: cmovnel %ecx, %eax18; CHECK-NEXT: cvtsi2sd %eax, %xmm019; CHECK-NEXT: movsd {{.*#+}} xmm2 = [1.0E+2,0.0E+0]20; CHECK-NEXT: subsd %xmm2, %xmm021; CHECK-NEXT: movsd {{.*#+}} xmm3 = [1.0E+0,0.0E+0]22; CHECK-NEXT: movsd {{.*#+}} xmm2 = [3.1400000000000001E+0,0.0E+0]23; CHECK-NEXT: cmplesd %xmm1, %xmm024; CHECK-NEXT: movaps %xmm0, %xmm125; CHECK-NEXT: andpd %xmm3, %xmm126; CHECK-NEXT: andnpd %xmm2, %xmm027; CHECK-NEXT: orpd %xmm1, %xmm028; CHECK-NEXT: cvttsd2si %xmm0, %eax29; CHECK-NEXT: popq %rcx30; CHECK-NEXT: retq31entry:32 %call = call i32 (...) @b()33 %conv = sitofp i32 %call to double34 %cmp2 = icmp ne ptr getelementptr (i8, ptr @calloc, i64 1), null35 %sel = select i1 %cmp2, i32 1, i32 036 %sitofp = sitofp i32 %sel to double37 %fsub = fsub double %sitofp, 1.000000e+0238 %cmp = fcmp ole double %fsub, %conv39 %cond = select i1 %cmp, double 1.000000e+00, double 3.140000e+0040 %conv2 = fptosi double %cond to i3241 ret i32 %conv242}43 44declare ptr @calloc(i64, i64)45 46declare i32 @b(...)47