xref: /llvm-project/llvm/test/CodeGen/X86/zero-call-used-regs-fmod.ll (revision deaf22bc0e306bc44c70d2503e9364b5ed312c49)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | FileCheck %s
3
4define dso_local float @foo() local_unnamed_addr #0 {
5; CHECK-LABEL: foo:
6; CHECK:       # %bb.0: # %entry
7; CHECK-NEXT:    pushq %rax
8; CHECK-NEXT:    .cfi_def_cfa_offset 16
9; CHECK-NEXT:    xorps %xmm0, %xmm0
10; CHECK-NEXT:    xorps %xmm1, %xmm1
11; CHECK-NEXT:    callq fmod
12; CHECK-NEXT:    cvtsd2ss %xmm0, %xmm0
13; CHECK-NEXT:    popq %rax
14; CHECK-NEXT:    .cfi_def_cfa_offset 8
15; CHECK-NEXT:    xorl %eax, %eax
16; CHECK-NEXT:    xorps %xmm1, %xmm1
17; CHECK-NEXT:    retq
18entry:
19  %call = call nnan ninf double @fmod(double 0.000000e+00, double 0.000000e+00) #2
20  %conv = fptrunc double %call to float
21  ret float %conv
22}
23
24declare dso_local double @fmod(double, double) local_unnamed_addr #1
25
26attributes #0 = { mustprogress nofree nounwind uwtable willreturn "frame-pointer"="none" "min-legal-vector-width"="0" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" "zero-call-used-regs"="used" }
27attributes #1 = { mustprogress nofree nounwind willreturn "frame-pointer"="none" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" "zero-call-used-regs"="used" }
28attributes #2 = { nounwind }
29