Clang Project

clang_source_code/test/CodeGen/finite-math.c
1// RUN: %clang_cc1 -ffinite-math-only -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK -check-prefix=FINITE
2// RUN: %clang_cc1 -fno-signed-zeros -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK  -check-prefix=NSZ
3// RUN: %clang_cc1 -freciprocal-math -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK  -check-prefix=RECIP
4// RUN: %clang_cc1 -mreassociate -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK  -check-prefix=REASSOC
5
6float f0, f1, f2;
7
8void foo(void) {
9  // CHECK-LABEL: define {{.*}}void @foo()
10
11  // FINITE: fadd nnan ninf
12  // NSZ: fadd nsz
13  // RECIP: fadd arcp
14  // REASSOC: fadd reassoc
15  f0 = f1 + f2;
16
17  // CHECK: ret
18}
19
20