blob: 1d9eb1109b8130f6a377635d6cdeeb7290ff4e84 [file] [edit]
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -menable-no-infs -menable-no-nans -fclangir -emit-cir %s -o %t.cir
// RUN: FileCheck --check-prefix=CIR --input-file=%t.cir %s
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -menable-no-infs -menable-no-nans -fclangir -emit-llvm %s -o %t-cir.ll
// RUN: FileCheck --check-prefix=LLVM --input-file=%t-cir.ll %s
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -menable-no-infs -menable-no-nans -emit-llvm %s -o %t.ll
// RUN: FileCheck --check-prefix=LLVM --input-file=%t.ll %s
float identity(float x) { return x; }
// CIR: cir.func {{.*}} @identity(%arg0: !cir.float {llvm.nofpclass = 519 : i64, llvm.noundef}
// CIR-SAME: -> (!cir.float {llvm.nofpclass = 519 : i64})
// LLVM: define {{.*}} nofpclass(nan inf) float @identity(float noundef nofpclass(nan inf) %{{.*}})
double add(double a, double b) { return a + b; }
// CIR: cir.func {{.*}} @add(%arg0: !cir.double {llvm.nofpclass = 519 : i64, llvm.noundef}
// CIR-SAME: %arg1: !cir.double {llvm.nofpclass = 519 : i64, llvm.noundef}
// CIR-SAME: -> (!cir.double {llvm.nofpclass = 519 : i64})
// LLVM: define {{.*}} nofpclass(nan inf) double @add(double noundef nofpclass(nan inf) %{{.*}}, double noundef nofpclass(nan inf) %{{.*}})
_Complex double ret_complex(void) { return 1.0 + 2.0i; }
// CIR: cir.func {{.*}} @ret_complex() -> (!cir.complex<!cir.double> {llvm.nofpclass = 519 : i64})
// LLVM: define {{.*}} nofpclass(nan inf) { double, double } @ret_complex()
int non_fp(int x) { return x; }
// CIR: cir.func {{.*}} @non_fp(%arg0: !s32i {llvm.noundef}{{.*}}) -> !s32i
// LLVM: define {{.*}} i32 @non_fp(i32 noundef %{{.*}})