xref: /llvm-project/llvm/test/Verifier/fp-intrinsics.ll (revision 2bd4130362966b71ae8bc0c0da56d5e064a09dae)
1; RUN: not opt -passes=verify -disable-output < %s 2>&1 | FileCheck %s
2
3declare double @llvm.experimental.constrained.fadd.f64(double, double, metadata, metadata)
4declare double @llvm.experimental.constrained.sqrt.f64(double, metadata, metadata)
5
6; Test an illegal value for the rounding mode argument.
7; CHECK: invalid rounding mode argument
8; CHECK-NEXT:   %fadd = call double @llvm.experimental.constrained.fadd.f64(double %a, double %b, metadata !"round.dynomic", metadata !"fpexcept.strict") #1
9define double @f2(double %a, double %b) #0 {
10entry:
11  %fadd = call double @llvm.experimental.constrained.fadd.f64(
12                                          double %a, double %b,
13                                          metadata !"round.dynomic",
14                                          metadata !"fpexcept.strict") #0
15  ret double %fadd
16}
17
18; Test an illegal value for the exception behavior argument.
19; CHECK-NEXT: invalid exception behavior argument
20; CHECK-NEXT:   %fadd = call double @llvm.experimental.constrained.fadd.f64(double %a, double %b, metadata !"round.dynamic", metadata !"fpexcept.restrict") #1
21define double @f3(double %a, double %b) #0 {
22entry:
23  %fadd = call double @llvm.experimental.constrained.fadd.f64(
24                                        double %a, double %b,
25                                        metadata !"round.dynamic",
26                                        metadata !"fpexcept.restrict") #0
27  ret double %fadd
28}
29
30; Test an illegal value for the rounding mode argument.
31; CHECK-NEXT: invalid rounding mode argument
32; CHECK-NEXT:   %fadd = call double @llvm.experimental.constrained.sqrt.f64(double %a, metadata !"round.dynomic", metadata !"fpexcept.strict") #1
33define double @f4(double %a) #0 {
34entry:
35  %fadd = call double @llvm.experimental.constrained.sqrt.f64(
36                                          double %a,
37                                          metadata !"round.dynomic",
38                                          metadata !"fpexcept.strict") #0
39  ret double %fadd
40}
41
42; Test an illegal value for the exception behavior argument.
43; CHECK-NEXT: invalid exception behavior argument
44; CHECK-NEXT:   %fadd = call double @llvm.experimental.constrained.sqrt.f64(double %a, metadata !"round.dynamic", metadata !"fpexcept.restrict") #1
45define double @f5(double %a) #0 {
46entry:
47  %fadd = call double @llvm.experimental.constrained.sqrt.f64(
48                                        double %a,
49                                        metadata !"round.dynamic",
50                                        metadata !"fpexcept.restrict") #0
51  ret double %fadd
52}
53
54attributes #0 = { strictfp }
55