blob: 7676ee164ce4a1b9df236649a8fb2552eca191b6 [file] [log] [blame]
Pekka Jaaskelainen37014502014-12-10 16:41:14 +00001// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s -check-prefix=NORMAL
2// RUN: %clang_cc1 %s -emit-llvm -cl-fast-relaxed-math -o - | FileCheck %s -check-prefix=FAST
3// RUN: %clang_cc1 %s -emit-llvm -cl-finite-math-only -o - | FileCheck %s -check-prefix=FINITE
4// RUN: %clang_cc1 %s -emit-llvm -cl-unsafe-math-optimizations -o - | FileCheck %s -check-prefix=UNSAFE
Egor Churaev45c26ee2017-03-27 10:38:01 +00005// RUN: %clang_cc1 %s -emit-llvm -cl-mad-enable -o - | FileCheck %s -check-prefix=MAD
6// RUN: %clang_cc1 %s -emit-llvm -cl-no-signed-zeros -o - | FileCheck %s -check-prefix=NOSIGNED
Pekka Jaaskelainen37014502014-12-10 16:41:14 +00007
8float spscalardiv(float a, float b) {
9 // CHECK: @spscalardiv(
10
Melanie Blower827be692020-05-15 07:30:49 -070011 // NORMAL: fdiv float
Pekka Jaaskelainen37014502014-12-10 16:41:14 +000012 // FAST: fdiv fast float
Melanie Blower827be692020-05-15 07:30:49 -070013 // FINITE: fdiv nnan ninf float
14 // UNSAFE: fdiv nnan nsz float
15 // MAD: fdiv float
16 // NOSIGNED: fdiv nsz float
Pekka Jaaskelainen37014502014-12-10 16:41:14 +000017 return a / b;
18}
19// CHECK: attributes
20
Egor Churaev45c26ee2017-03-27 10:38:01 +000021// NORMAL: "less-precise-fpmad"="false"
Pekka Jaaskelainen37014502014-12-10 16:41:14 +000022// NORMAL: "no-infs-fp-math"="false"
23// NORMAL: "no-nans-fp-math"="false"
Egor Churaev45c26ee2017-03-27 10:38:01 +000024// NORMAL: "no-signed-zeros-fp-math"="false"
Pekka Jaaskelainen37014502014-12-10 16:41:14 +000025// NORMAL: "unsafe-fp-math"="false"
26
Egor Churaev45c26ee2017-03-27 10:38:01 +000027// FAST: "less-precise-fpmad"="true"
Pekka Jaaskelainen37014502014-12-10 16:41:14 +000028// FAST: "no-infs-fp-math"="true"
29// FAST: "no-nans-fp-math"="true"
Egor Churaev45c26ee2017-03-27 10:38:01 +000030// FAST: "no-signed-zeros-fp-math"="true"
Pekka Jaaskelainen37014502014-12-10 16:41:14 +000031// FAST: "unsafe-fp-math"="true"
32
Egor Churaev45c26ee2017-03-27 10:38:01 +000033// FINITE: "less-precise-fpmad"="false"
Pekka Jaaskelainen37014502014-12-10 16:41:14 +000034// FINITE: "no-infs-fp-math"="true"
35// FINITE: "no-nans-fp-math"="true"
Egor Churaev45c26ee2017-03-27 10:38:01 +000036// FINITE: "no-signed-zeros-fp-math"="false"
Pekka Jaaskelainen37014502014-12-10 16:41:14 +000037// FINITE: "unsafe-fp-math"="false"
38
Egor Churaev45c26ee2017-03-27 10:38:01 +000039// UNSAFE: "less-precise-fpmad"="true"
Pekka Jaaskelainen37014502014-12-10 16:41:14 +000040// UNSAFE: "no-infs-fp-math"="false"
41// UNSAFE: "no-nans-fp-math"="true"
Egor Churaev45c26ee2017-03-27 10:38:01 +000042// UNSAFE: "no-signed-zeros-fp-math"="true"
Pekka Jaaskelainen37014502014-12-10 16:41:14 +000043// UNSAFE: "unsafe-fp-math"="true"
44
Egor Churaev45c26ee2017-03-27 10:38:01 +000045// MAD: "less-precise-fpmad"="true"
46// MAD: "no-infs-fp-math"="false"
47// MAD: "no-nans-fp-math"="false"
48// MAD: "no-signed-zeros-fp-math"="false"
49// MAD: "unsafe-fp-math"="false"
50
51// NOSIGNED: "less-precise-fpmad"="false"
52// NOSIGNED: "no-infs-fp-math"="false"
53// NOSIGNED: "no-nans-fp-math"="false"
54// NOSIGNED: "no-signed-zeros-fp-math"="true"
55// NOSIGNED: "unsafe-fp-math"="false"