10e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// RUN: %clang_cc1 -ffinite-math-only -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK -check-prefix=FINITE
20e2c34f92f00628d48968dfea096d36381f494cbStephen Hines// RUN: %clang_cc1 -fno-signed-zeros -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK  -check-prefix=NSZ
358878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar// RUN: %clang_cc1 -freciprocal-math -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK  -check-prefix=RECIP
40e2c34f92f00628d48968dfea096d36381f494cbStephen Hines
523add332da632c3cee7638b9d72b4ba8df67541cMichael Ilsemanfloat f0, f1, f2;
6cdeb7d57a4867c28e3e6a8c391cba6f13c781fa6Michael Ilseman
7cdeb7d57a4867c28e3e6a8c391cba6f13c781fa6Michael Ilsemanvoid foo(void) {
887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar  // CHECK-LABEL: define {{.*}}void @foo()
9cdeb7d57a4867c28e3e6a8c391cba6f13c781fa6Michael Ilseman
100e2c34f92f00628d48968dfea096d36381f494cbStephen Hines  // FINITE: fadd nnan ninf
110e2c34f92f00628d48968dfea096d36381f494cbStephen Hines  // NSZ: fadd nsz
1258878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar  // RECIP: fadd arcp
13cdeb7d57a4867c28e3e6a8c391cba6f13c781fa6Michael Ilseman  f0 = f1 + f2;
14cdeb7d57a4867c28e3e6a8c391cba6f13c781fa6Michael Ilseman
15cdeb7d57a4867c28e3e6a8c391cba6f13c781fa6Michael Ilseman  // CHECK: ret
16cdeb7d57a4867c28e3e6a8c391cba6f13c781fa6Michael Ilseman}
170e2c34f92f00628d48968dfea096d36381f494cbStephen Hines
18