blob: ac24c72704d24a5954d4bd2cf2c88a7079afcc93 [file] [log] [blame] [edit]
; Tests that all comparison conditions survive through PNaCl bitcode files.
; RUN: llvm-as < %s | pnacl-freeze | pnacl-thaw | llvm-dis - \
; RUN: | FileCheck %s
define void @IntCompare() {
%1 = icmp eq i32 0, 1
%2 = icmp ne i32 0, 1
%3 = icmp ugt i32 0, 1
%4 = icmp uge i32 0, 1
%5 = icmp ult i32 0, 1
%6 = icmp ule i32 0, 1
%7 = icmp sgt i32 0, 1
%8 = icmp sge i32 0, 1
%9 = icmp slt i32 0, 1
%10 = icmp sle i32 0, 1
ret void
}
; CHECK: define void @IntCompare() {
; CHECK: %1 = icmp eq i32 0, 1
; CHECK: %2 = icmp ne i32 0, 1
; CHECK: %3 = icmp ugt i32 0, 1
; CHECK: %4 = icmp uge i32 0, 1
; CHECK: %5 = icmp ult i32 0, 1
; CHECK: %6 = icmp ule i32 0, 1
; CHECK: %7 = icmp sgt i32 0, 1
; CHECK: %8 = icmp sge i32 0, 1
; CHECK: %9 = icmp slt i32 0, 1
; CHECK: %10 = icmp sle i32 0, 1
; CHECK: ret void
; CHECK: }
define void @FloatCompare() {
%1 = fcmp false float 0.000000e+00, 1.000000e+00
%2 = fcmp oeq float 0.000000e+00, 1.000000e+00
%3 = fcmp ogt float 0.000000e+00, 1.000000e+00
%4 = fcmp oge float 0.000000e+00, 1.000000e+00
%5 = fcmp olt float 0.000000e+00, 1.000000e+00
%6 = fcmp ole float 0.000000e+00, 1.000000e+00
%7 = fcmp one float 0.000000e+00, 1.000000e+00
%8 = fcmp ord float 0.000000e+00, 1.000000e+00
%9 = fcmp ueq float 0.000000e+00, 1.000000e+00
%10 = fcmp ugt float 0.000000e+00, 1.000000e+00
%11 = fcmp uge float 0.000000e+00, 1.000000e+00
%12 = fcmp ult float 0.000000e+00, 1.000000e+00
%13 = fcmp ule float 0.000000e+00, 1.000000e+00
%14 = fcmp une float 0.000000e+00, 1.000000e+00
%15 = fcmp uno float 0.000000e+00, 1.000000e+00
%16 = fcmp true float 0.000000e+00, 1.000000e+00
ret void
}
; CHECK: define void @FloatCompare() {
; CHECK: %1 = fcmp false float 0.000000e+00, 1.000000e+00
; CHECK: %2 = fcmp oeq float 0.000000e+00, 1.000000e+00
; CHECK: %3 = fcmp ogt float 0.000000e+00, 1.000000e+00
; CHECK: %4 = fcmp oge float 0.000000e+00, 1.000000e+00
; CHECK: %5 = fcmp olt float 0.000000e+00, 1.000000e+00
; CHECK: %6 = fcmp ole float 0.000000e+00, 1.000000e+00
; CHECK: %7 = fcmp one float 0.000000e+00, 1.000000e+00
; CHECK: %8 = fcmp ord float 0.000000e+00, 1.000000e+00
; CHECK: %9 = fcmp ueq float 0.000000e+00, 1.000000e+00
; CHECK: %10 = fcmp ugt float 0.000000e+00, 1.000000e+00
; CHECK: %11 = fcmp uge float 0.000000e+00, 1.000000e+00
; CHECK: %12 = fcmp ult float 0.000000e+00, 1.000000e+00
; CHECK: %13 = fcmp ule float 0.000000e+00, 1.000000e+00
; CHECK: %14 = fcmp une float 0.000000e+00, 1.000000e+00
; CHECK: %15 = fcmp uno float 0.000000e+00, 1.000000e+00
; CHECK: %16 = fcmp true float 0.000000e+00, 1.000000e+00
; CHECK: ret void
; CHECK: }