xref: /llvm-project/llvm/test/Bitcode/fcmp-fast.ll (revision 15c0515a2171bd2be2506e18e292731ef9fb10b6)
188eb535bSJames Molloy; RUN: llvm-as < %s | llvm-dis > %t0
288eb535bSJames Molloy; RUN: opt -S < %s > %t1
388eb535bSJames Molloy; RUN: diff %t0 %t1
488eb535bSJames Molloy; RUN: FileCheck < %t1 %s
588eb535bSJames Molloy
6*15c0515aSMichael Berg; Make sure fast math flags on fcmp instructions are serialized/deserialized properly.
788eb535bSJames Molloy
888eb535bSJames Molloydefine i1 @foo(float %a, float %b, double %c, double %d) {
988eb535bSJames Molloy  ; CHECK:   %plain = fcmp ueq float %a, %b
1088eb535bSJames Molloy  %plain = fcmp ueq float %a, %b
1188eb535bSJames Molloy  ; CHECK:   %fast = fcmp fast olt float %a, %b
1288eb535bSJames Molloy  %fast = fcmp fast olt float %a, %b
1388eb535bSJames Molloy  ; CHECK:   %nsz = fcmp nsz uge float %a, %b
1488eb535bSJames Molloy  %nsz = fcmp nsz uge float %a, %b
1588eb535bSJames Molloy  ; CHECK:   %nnan = fcmp nnan nsz oge double %c, %d
1688eb535bSJames Molloy  %nnan = fcmp nnan nsz oge double %c, %d
1788eb535bSJames Molloy
1888eb535bSJames Molloy  %dce1 = or i1 %plain, %fast
1988eb535bSJames Molloy  %dce2 = or i1 %dce1, %nsz
2088eb535bSJames Molloy  %dce3 = or i1 %dce2, %nnan
2188eb535bSJames Molloy
2288eb535bSJames Molloy  ret i1 %dce3
2388eb535bSJames Molloy}
24