diff options
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r-- | llvm/test/CodeGen/ARM/build-attributes-fn-attr0.ll | 11 | ||||
-rw-r--r-- | llvm/test/CodeGen/ARM/build-attributes-fn-attr1.ll | 18 | ||||
-rw-r--r-- | llvm/test/CodeGen/ARM/build-attributes-fn-attr2.ll | 18 | ||||
-rw-r--r-- | llvm/test/CodeGen/ARM/build-attributes-fn-attr3.ll | 17 | ||||
-rw-r--r-- | llvm/test/CodeGen/ARM/build-attributes-fn-attr4.ll | 22 | ||||
-rw-r--r-- | llvm/test/CodeGen/ARM/build-attributes-fn-attr5.ll | 22 | ||||
-rw-r--r-- | llvm/test/CodeGen/ARM/build-attributes-fn-attr6.ll | 23 |
7 files changed, 131 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/build-attributes-fn-attr0.ll b/llvm/test/CodeGen/ARM/build-attributes-fn-attr0.ll new file mode 100644 index 00000000000..2fb3e032e5d --- /dev/null +++ b/llvm/test/CodeGen/ARM/build-attributes-fn-attr0.ll @@ -0,0 +1,11 @@ +; Check FP options -fno-trapping-math and -fdenormal-fp-math. They are passed +; as function attributes, which map on to build attributes ABI_FP_exceptions +; ABI_FP_denormal. In the backend we therefore have a check to see if all +; functions have consistent function attributes values. This check also returns +; true when the compilation unit does not have any functions (i.e. the +; attributes are consistent), which is what we check with this regression test. + +; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a15 | FileCheck %s --check-prefix=CHECK + +; CHECK: .eabi_attribute 20, 2 +; CHECK: .eabi_attribute 21, 0 diff --git a/llvm/test/CodeGen/ARM/build-attributes-fn-attr1.ll b/llvm/test/CodeGen/ARM/build-attributes-fn-attr1.ll new file mode 100644 index 00000000000..a4e2b8a01a6 --- /dev/null +++ b/llvm/test/CodeGen/ARM/build-attributes-fn-attr1.ll @@ -0,0 +1,18 @@ +; Check FP options -fno-trapping-math and -fdenormal-fp-math. They are passed as +; function attributes, which map on to build attributes ABI_FP_exceptions ABI_FP_denormal. +; In the backend we have a check to see if all functions have consistent function +; attributes values. This checks the "default" behaviour when these FP function +; attributes are not set at all. + +; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a15 | FileCheck %s --check-prefix=CHECK + +; CHECK: .eabi_attribute 20, 2 +; CHECK: .eabi_attribute 21, 0 + + +define i32 @foo_no_fn_attr() local_unnamed_addr #0 { +entry: + ret i32 42 +} + +attributes #0 = { minsize norecurse nounwind optsize readnone } diff --git a/llvm/test/CodeGen/ARM/build-attributes-fn-attr2.ll b/llvm/test/CodeGen/ARM/build-attributes-fn-attr2.ll new file mode 100644 index 00000000000..7461b518e0b --- /dev/null +++ b/llvm/test/CodeGen/ARM/build-attributes-fn-attr2.ll @@ -0,0 +1,18 @@ +; Check FP options -fno-trapping-math and -fdenormal-fp-math. They are passed +; as function attributes, which map on to build attributes ABI_FP_exceptions +; ABI_FP_denormal. In the backend we therefore have a check to see if all +; functions have consistent function attributes values. +; Here we just test correct output for specific values of no trapping math +; and denormals. + +; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a15 | FileCheck %s --check-prefix=CHECK + +; CHECK: .eabi_attribute 20, 1 +; CHECK: .eabi_attribute 21, 1 + +define i32 @foo() local_unnamed_addr #0 { +entry: + ret i32 42 +} + +attributes #0 = { minsize norecurse nounwind optsize readnone "no-trapping-math"="false" "denormal-fp-math"="ieee"} diff --git a/llvm/test/CodeGen/ARM/build-attributes-fn-attr3.ll b/llvm/test/CodeGen/ARM/build-attributes-fn-attr3.ll new file mode 100644 index 00000000000..224f9d5d38d --- /dev/null +++ b/llvm/test/CodeGen/ARM/build-attributes-fn-attr3.ll @@ -0,0 +1,17 @@ +; Check FP options -fno-trapping-math and -fdenormal-fp-math. They are passed +; as function attributes, which map on to build attributes ABI_FP_exceptions +; ABI_FP_denormal. In the backend we therefore have a check to see if all +; functions have consistent function attributes values. +; Here we check: no-trapping-math=true + +; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a15 | FileCheck %s --check-prefix=CHECK + +; CHECK: .eabi_attribute 20, 1 +; CHECK: .eabi_attribute 21, 0 + +define i32 @foo() local_unnamed_addr #0 { +entry: + ret i32 42 +} + +attributes #0 = { minsize norecurse nounwind optsize readnone "no-trapping-math"="true"} diff --git a/llvm/test/CodeGen/ARM/build-attributes-fn-attr4.ll b/llvm/test/CodeGen/ARM/build-attributes-fn-attr4.ll new file mode 100644 index 00000000000..14707c281ad --- /dev/null +++ b/llvm/test/CodeGen/ARM/build-attributes-fn-attr4.ll @@ -0,0 +1,22 @@ +; Check FP options -fno-trapping-math and -fdenormal-fp-math. They are passed +; as function attributes, which map on to build attributes ABI_FP_exceptions +; ABI_FP_denormal. In the backend we therefore have a check to see if all +; functions have consistent function attributes values. +; Here we check: denormal-fp-math=positive-zero + +; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a15 | FileCheck %s --check-prefix=CHECK + +; CHECK: .eabi_attribute 20, 0 +; CHECK: .eabi_attribute 21, 0 + +define i32 @foo1() local_unnamed_addr #0 { +entry: + ret i32 42 +} + +define i32 @foo2() local_unnamed_addr #0 { +entry: + ret i32 42 +} + +attributes #0 = { minsize norecurse nounwind optsize readnone "denormal-fp-math"="positive-zero"} diff --git a/llvm/test/CodeGen/ARM/build-attributes-fn-attr5.ll b/llvm/test/CodeGen/ARM/build-attributes-fn-attr5.ll new file mode 100644 index 00000000000..b36df521152 --- /dev/null +++ b/llvm/test/CodeGen/ARM/build-attributes-fn-attr5.ll @@ -0,0 +1,22 @@ +; Check FP options -fno-trapping-math and -fdenormal-fp-math. They are passed +; as function attributes, which map on to build attributes ABI_FP_exceptions +; ABI_FP_denormal. In the backend we therefore have a check to see if all +; functions have consistent function attributes values. +; Here we check: denormal-fp-math=preserve-sign + +; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a15 | FileCheck %s --check-prefix=CHECK + +; CHECK: .eabi_attribute 20, 2 +; CHECK: .eabi_attribute 21, 0 + +define i32 @foo1() local_unnamed_addr #0 { +entry: + ret i32 42 +} + +define i32 @foo2() local_unnamed_addr #0 { +entry: + ret i32 42 +} + +attributes #0 = { minsize norecurse nounwind optsize readnone "denormal-fp-math"="preserve-sign"} diff --git a/llvm/test/CodeGen/ARM/build-attributes-fn-attr6.ll b/llvm/test/CodeGen/ARM/build-attributes-fn-attr6.ll new file mode 100644 index 00000000000..2cbe15a6dd0 --- /dev/null +++ b/llvm/test/CodeGen/ARM/build-attributes-fn-attr6.ll @@ -0,0 +1,23 @@ +; Check FP options -fno-trapping-math and -fdenormal-fp-math. They are passed +; as function attributes, which map on to build attributes ABI_FP_exceptions +; ABI_FP_denormal. In the backend we therefore have a check to see if all +; functions have consistent function attributes values. Here we check two +; functions have inconsistent values, and that a default is returned. + +; RUN: llc < %s -mtriple=armv7-linux-gnueabi -mcpu=cortex-a15 | FileCheck %s --check-prefix=CHECK + +; CHECK: .eabi_attribute 20, 0 +; CHECK: .eabi_attribute 21, 0 + +define i32 @foo1() local_unnamed_addr #0 { +entry: + ret i32 42 +} + +define i32 @foo2() local_unnamed_addr #1 { +entry: + ret i32 42 +} + +attributes #0 = { minsize norecurse nounwind optsize readnone "denormal-fp-math"="preserve-sign"} +attributes #0 = { minsize norecurse nounwind optsize readnone "denormal-fp-math"="positive-zero"} |