[clang] [llvm] [mlir] IR: Promote "denormal-fp-math" to a first class attribute (PR #174293)
Nikita Popov via cfe-commits
cfe-commits at lists.llvm.org
Thu Feb 5 02:35:38 PST 2026
================
@@ -0,0 +1,375 @@
+; RUN: llvm-as < %s | llvm-dis | FileCheck %s
+
+; Invalid but didn't fail the verifier
+define void @str_denormal_fp_math_no_val() "denormal-fp-math" {
+; CHECK: Function Attrs: denormal_fpenv(ieee)
+; CHECK-LABEL: define void @str_denormal_fp_math_no_val(
+; CHECK-SAME: ) #[[ATTR0:[0-9]+]] {
+; CHECK-NEXT: ret void
+;
+ ret void
+}
+
+; Invalid but didn't fail the verifier
+define void @str_denormal_fp_math_empty_str() "denormal-fp-math"="" {
+; CHECK: Function Attrs: denormal_fpenv(ieee)
+; CHECK-LABEL: define void @str_denormal_fp_math_empty_str(
+; CHECK-SAME: ) #[[ATTR0]] {
+; CHECK-NEXT: ret void
+;
+ ret void
+}
+
+define void @str_denormal_fp_math_ieee() "denormal-fp-math"="ieee" {
+; CHECK: Function Attrs: denormal_fpenv(ieee)
+; CHECK-LABEL: define void @str_denormal_fp_math_ieee(
+; CHECK-SAME: ) #[[ATTR0]] {
+; CHECK-NEXT: ret void
+;
+ ret void
+}
+
+define void @str_denormal_fp_math_ieee_ieee() "denormal-fp-math"="ieee,ieee" {
+; CHECK: Function Attrs: denormal_fpenv(ieee)
+; CHECK-LABEL: define void @str_denormal_fp_math_ieee_ieee(
+; CHECK-SAME: ) #[[ATTR0]] {
+; CHECK-NEXT: ret void
+;
+ ret void
+}
+
+define void @str_denormal_fp_math_preserve_sign() "denormal-fp-math"="preserve-sign" {
+; CHECK: Function Attrs: denormal_fpenv(preservesign)
+; CHECK-LABEL: define void @str_denormal_fp_math_preserve_sign(
+; CHECK-SAME: ) #[[ATTR1:[0-9]+]] {
+; CHECK-NEXT: ret void
+;
+ ret void
+}
+
+define void @str_denormal_fp_math_preserve_sign_preserve_sign() "denormal-fp-math"="preserve-sign,preserve-sign" {
+; CHECK: Function Attrs: denormal_fpenv(preservesign)
+; CHECK-LABEL: define void @str_denormal_fp_math_preserve_sign_preserve_sign(
+; CHECK-SAME: ) #[[ATTR1]] {
+; CHECK-NEXT: ret void
+;
+ ret void
+}
+
+define void @str_denormal_fp_math_dynamic() "denormal-fp-math"="dynamic" {
+; CHECK: Function Attrs: denormal_fpenv(dynamic)
+; CHECK-LABEL: define void @str_denormal_fp_math_dynamic(
+; CHECK-SAME: ) #[[ATTR2:[0-9]+]] {
+; CHECK-NEXT: ret void
+;
+ ret void
+}
+
+define void @str_denormal_fp_math_dynamic_dynamic() "denormal-fp-math"="dynamic,dynamic" {
+; CHECK: Function Attrs: denormal_fpenv(dynamic)
+; CHECK-LABEL: define void @str_denormal_fp_math_dynamic_dynamic(
+; CHECK-SAME: ) #[[ATTR2]] {
+; CHECK-NEXT: ret void
+;
+ ret void
+}
+
+define void @str_denormal_fp_math_positivezero() "denormal-fp-math"="positive-zero" {
+; CHECK: Function Attrs: denormal_fpenv(positivezero)
+; CHECK-LABEL: define void @str_denormal_fp_math_positivezero(
+; CHECK-SAME: ) #[[ATTR3:[0-9]+]] {
+; CHECK-NEXT: ret void
+;
+ ret void
+}
+
+define void @str_denormal_fp_math_positivezero_positivezero() "denormal-fp-math"="positive-zero,positive-zero" {
+; CHECK: Function Attrs: denormal_fpenv(positivezero)
+; CHECK-LABEL: define void @str_denormal_fp_math_positivezero_positivezero(
+; CHECK-SAME: ) #[[ATTR3]] {
+; CHECK-NEXT: ret void
+;
+ ret void
+}
+
+define void @str_denormal_fp_math_ieee_preservesign() "denormal-fp-math"="ieee,preserve-sign" {
+; CHECK-LABEL: define void @str_denormal_fp_math_ieee_preservesign(
----------------
nikic wrote:
Missing `Function Attrs` check line here and in the next test?
https://github.com/llvm/llvm-project/pull/174293
More information about the cfe-commits
mailing list