aboutsummaryrefslogtreecommitdiffstats
path: root/test/Verifier/fpmath.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Verifier/fpmath.ll')
-rw-r--r--test/Verifier/fpmath.ll24
1 files changed, 18 insertions, 6 deletions
diff --git a/test/Verifier/fpmath.ll b/test/Verifier/fpmath.ll
index 4cfed2a..a7d3ea8 100644
--- a/test/Verifier/fpmath.ll
+++ b/test/Verifier/fpmath.ll
@@ -1,6 +1,6 @@
; RUN: not llvm-as < %s |& FileCheck %s
-define void @foo(i32 %i, float %f, <2 x float> %g) {
+define void @fpmath1(i32 %i, float %f, <2 x float> %g) {
%s = add i32 %i, %i, !fpmath !0
; CHECK: fpmath requires a floating point result!
%t = fadd float %f, %f, !fpmath !1
@@ -8,17 +8,27 @@ define void @foo(i32 %i, float %f, <2 x float> %g) {
%u = fadd float %f, %f, !fpmath !2
; CHECK: fpmath takes one operand!
%v = fadd float %f, %f, !fpmath !3
-; CHECK: fpmath ULPs not a floating point number!
+; CHECK: invalid fpmath accuracy!
%w = fadd float %f, %f, !fpmath !0
; Above line is correct.
%w2 = fadd <2 x float> %g, %g, !fpmath !0
; Above line is correct.
%x = fadd float %f, %f, !fpmath !4
-; CHECK: fpmath ULPs is negative!
+; CHECK: fpmath accuracy not a positive number!
%y = fadd float %f, %f, !fpmath !5
-; CHECK: fpmath ULPs is negative!
+; CHECK: fpmath accuracy not a positive number!
%z = fadd float %f, %f, !fpmath !6
-; CHECK: fpmath ULPs not a normal number!
+; CHECK: fpmath accuracy not a positive number!
+ ret void
+}
+
+define void @fpmath2(float %f, <2 x float> %g) {
+ %w = fadd float %f, %f, !fpmath !7
+; Above line is correct.
+ %w2 = fadd <2 x float> %g, %g, !fpmath !7
+; Above line is correct.
+ %x = fadd float %f, %f, !fpmath !8
+; CHECK: wrong fpmath accuracy keyword!
ret void
}
@@ -27,5 +37,7 @@ define void @foo(i32 %i, float %f, <2 x float> %g) {
!2 = metadata !{ float 1.0, float 1.0 }
!3 = metadata !{ i32 1 }
!4 = metadata !{ float -1.0 }
-!5 = metadata !{ float -0.0 }
+!5 = metadata !{ float 0.0 }
!6 = metadata !{ float 0x7FFFFFFF00000000 }
+!7 = metadata !{ metadata !"fast" }
+!8 = metadata !{ metadata !"slow" }