summaryrefslogtreecommitdiff
path: root/llvm/test/CodeGen/ARM
diff options
context:
space:
mode:
authorDavid Green <david.green@arm.com>2025-09-27 16:50:48 +0100
committerGitHub <noreply@github.com>2025-09-27 16:50:48 +0100
commit9bf51b2b19064644ca447cde425dccf2bd971722 (patch)
treefe5f1b2a1d08729d8bc6bb09ad33ecd2172c14c0 /llvm/test/CodeGen/ARM
parent371b3cae08c69b4991a4693ae69eeccab244bb52 (diff)
[ARM] Generate build-attributes more correctly in the presence of intrinsic declarations. (#160749)
This code doesn't work very well, but this makes it work when intrinsic definitions are present. It now discounts functions declarations from the set of attributes it looks at. The code would have worked better before 0ab5b5b8581d9f2951575f7245824e6e4fc57dec when module-level attributes could provide the information used to construct build-attributes.
Diffstat (limited to 'llvm/test/CodeGen/ARM')
-rw-r--r--llvm/test/CodeGen/ARM/build-attributes-fn-attr3.ll3
-rw-r--r--llvm/test/CodeGen/ARM/build-attributes-fn-attr4.ll3
-rw-r--r--llvm/test/CodeGen/ARM/build-attributes-fn-attr5.ll3
-rw-r--r--llvm/test/CodeGen/ARM/build-attributes-fn-attr6.ll3
4 files changed, 12 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/build-attributes-fn-attr3.ll b/llvm/test/CodeGen/ARM/build-attributes-fn-attr3.ll
index 7f70c44c78f9..27d1dc20bd81 100644
--- a/llvm/test/CodeGen/ARM/build-attributes-fn-attr3.ll
+++ b/llvm/test/CodeGen/ARM/build-attributes-fn-attr3.ll
@@ -11,7 +11,10 @@
define i32 @foo() local_unnamed_addr #0 {
entry:
+ %a = call float @llvm.fma.f32(float 0.0, float 0.0, float 0.0)
ret i32 42
}
+declare float @llvm.fma.f32(float, float, float)
+
attributes #0 = { minsize norecurse nounwind optsize readnone "no-trapping-math"="true" "denormal-fp-math"="ieee"}
diff --git a/llvm/test/CodeGen/ARM/build-attributes-fn-attr4.ll b/llvm/test/CodeGen/ARM/build-attributes-fn-attr4.ll
index c99cb27adf15..9c8dd8d95c61 100644
--- a/llvm/test/CodeGen/ARM/build-attributes-fn-attr4.ll
+++ b/llvm/test/CodeGen/ARM/build-attributes-fn-attr4.ll
@@ -10,7 +10,10 @@
define i32 @foo1() local_unnamed_addr #0 {
entry:
+ %a = call float @llvm.fma.f32(float 0.0, float 0.0, float 0.0)
ret i32 42
}
+declare float @llvm.fma.f32(float, float, float)
+
attributes #0 = { minsize norecurse nounwind optsize readnone "denormal-fp-math"="positive-zero,positive-zero" }
diff --git a/llvm/test/CodeGen/ARM/build-attributes-fn-attr5.ll b/llvm/test/CodeGen/ARM/build-attributes-fn-attr5.ll
index ba1e7d7ce55c..cda3ea0fc6d1 100644
--- a/llvm/test/CodeGen/ARM/build-attributes-fn-attr5.ll
+++ b/llvm/test/CodeGen/ARM/build-attributes-fn-attr5.ll
@@ -10,7 +10,10 @@
define i32 @foo1() local_unnamed_addr #0 {
entry:
+ %a = call float @llvm.fma.f32(float 0.0, float 0.0, float 0.0)
ret i32 42
}
+declare float @llvm.fma.f32(float, float, float)
+
attributes #0 = { minsize norecurse nounwind optsize readnone "denormal-fp-math"="preserve-sign,preserve-sign"}
diff --git a/llvm/test/CodeGen/ARM/build-attributes-fn-attr6.ll b/llvm/test/CodeGen/ARM/build-attributes-fn-attr6.ll
index 1cd68aed1e05..59d0a4019839 100644
--- a/llvm/test/CodeGen/ARM/build-attributes-fn-attr6.ll
+++ b/llvm/test/CodeGen/ARM/build-attributes-fn-attr6.ll
@@ -11,6 +11,7 @@
define i32 @foo1() local_unnamed_addr #0 {
entry:
+ %a = call float @llvm.fma.f32(float 0.0, float 0.0, float 0.0)
ret i32 42
}
@@ -19,5 +20,7 @@ entry:
ret i32 42
}
+declare float @llvm.fma.f32(float, float, float)
+
attributes #0 = { minsize norecurse nounwind optsize readnone "denormal-fp-math"="preserve-sign,preserve-sign"}
attributes #1 = { minsize norecurse nounwind optsize readnone "denormal-fp-math"="positive-zero,positive-zero"}