summaryrefslogtreecommitdiff
path: root/test/Bitcode
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2015-08-07 23:01:33 +0000
committerDimitry Andric <dim@FreeBSD.org>2015-08-07 23:01:33 +0000
commitee8648bdac07986a0f1ec897b02ec82a2f144d46 (patch)
tree52d1861acda1205241ee35a94aa63129c604d469 /test/Bitcode
parent1a82d4c088707c791c792f6822f611b47a12bdfe (diff)
Diffstat (limited to 'test/Bitcode')
-rw-r--r--test/Bitcode/attributes.ll11
-rw-r--r--test/Bitcode/fcmp-fast.ll23
2 files changed, 32 insertions, 2 deletions
diff --git a/test/Bitcode/attributes.ll b/test/Bitcode/attributes.ll
index cae6a2e01e6f..a0bc66642f7d 100644
--- a/test/Bitcode/attributes.ll
+++ b/test/Bitcode/attributes.ll
@@ -204,7 +204,7 @@ define void @f34()
; CHECK: define void @f34()
{
call void @nobuiltin() nobuiltin
-; CHECK: call void @nobuiltin() #26
+; CHECK: call void @nobuiltin() #27
ret void;
}
@@ -256,6 +256,12 @@ define void @f43() convergent {
ret void
}
+define void @f44() argmemonly
+; CHECK: define void @f44() #26
+{
+ ret void;
+}
+
; CHECK: attributes #0 = { noreturn }
; CHECK: attributes #1 = { nounwind }
; CHECK: attributes #2 = { readnone }
@@ -282,4 +288,5 @@ define void @f43() convergent {
; CHECK: attributes #23 = { noinline optnone }
; CHECK: attributes #24 = { jumptable }
; CHECK: attributes #25 = { convergent }
-; CHECK: attributes #26 = { nobuiltin }
+; CHECK: attributes #26 = { argmemonly }
+; CHECK: attributes #27 = { nobuiltin }
diff --git a/test/Bitcode/fcmp-fast.ll b/test/Bitcode/fcmp-fast.ll
new file mode 100644
index 000000000000..126e3652e3ac
--- /dev/null
+++ b/test/Bitcode/fcmp-fast.ll
@@ -0,0 +1,23 @@
+; RUN: llvm-as < %s | llvm-dis > %t0
+; RUN: opt -S < %s > %t1
+; RUN: diff %t0 %t1
+; RUN: FileCheck < %t1 %s
+
+; Make sure flags on fcmp instructions are serialized/deserialized properly.
+
+define i1 @foo(float %a, float %b, double %c, double %d) {
+ ; CHECK: %plain = fcmp ueq float %a, %b
+ %plain = fcmp ueq float %a, %b
+ ; CHECK: %fast = fcmp fast olt float %a, %b
+ %fast = fcmp fast olt float %a, %b
+ ; CHECK: %nsz = fcmp nsz uge float %a, %b
+ %nsz = fcmp nsz uge float %a, %b
+ ; CHECK: %nnan = fcmp nnan nsz oge double %c, %d
+ %nnan = fcmp nnan nsz oge double %c, %d
+
+ %dce1 = or i1 %plain, %fast
+ %dce2 = or i1 %dce1, %nsz
+ %dce3 = or i1 %dce2, %nnan
+
+ ret i1 %dce3
+}