|  | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | 
|  | ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | FileCheck %s | 
|  |  | 
|  | define dso_local float @foo() local_unnamed_addr #0 { | 
|  | ; CHECK-LABEL: foo: | 
|  | ; CHECK:       # %bb.0: # %entry | 
|  | ; CHECK-NEXT:    pushq %rax | 
|  | ; CHECK-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; CHECK-NEXT:    xorps %xmm0, %xmm0 | 
|  | ; CHECK-NEXT:    xorps %xmm1, %xmm1 | 
|  | ; CHECK-NEXT:    callq fmod | 
|  | ; CHECK-NEXT:    cvtsd2ss %xmm0, %xmm0 | 
|  | ; CHECK-NEXT:    popq %rax | 
|  | ; CHECK-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; CHECK-NEXT:    xorl %eax, %eax | 
|  | ; CHECK-NEXT:    xorps %xmm1, %xmm1 | 
|  | ; CHECK-NEXT:    retq | 
|  | entry: | 
|  | %call = call nnan ninf double @fmod(double 0.000000e+00, double 0.000000e+00) #2 | 
|  | %conv = fptrunc double %call to float | 
|  | ret float %conv | 
|  | } | 
|  |  | 
|  | declare dso_local double @fmod(double, double) local_unnamed_addr #1 | 
|  |  | 
|  | attributes #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" } | 
|  | attributes #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" } | 
|  | attributes #2 = { nounwind } |