aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-09-05 11:55:15 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-09-07 00:57:44 +0200
commit814cda15f647c14e0892deef3c57d73417e87b34 (patch)
tree1012b03f192acc772217ab325d161a30211c843b /validation
parent5c86c487ea5e3c6d4a56d7c98b39e33b6b4a28f5 (diff)
downloadsparse-dev-814cda15f647c14e0892deef3c57d73417e87b34.tar.gz
builtin: teach sparse to linearize __builtin_fma()
The support for the linearization of builtins was already added for __builtin_unreachable() but this builtin has no arguments and no return value. So, to complete the experience of builtin linearization, add the linearization of __builtin_fma(). Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation')
-rw-r--r--validation/linear/builtin-fma.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/validation/linear/builtin-fma.c b/validation/linear/builtin-fma.c
new file mode 100644
index 00000000..b1024f39
--- /dev/null
+++ b/validation/linear/builtin-fma.c
@@ -0,0 +1,19 @@
+double fma(double a, double x, double y)
+{
+ return __builtin_fma(a, x, y);
+}
+
+/*
+ * check-name: builtin-fma
+ * check-command: test-linearize -Wno-decl $file
+ *
+ * check-output-start
+fma:
+.L0:
+ <entry-point>
+ fmadd.64 %r4 <- %r1, %r2, %r3
+ ret.64 %r4
+
+
+ * check-output-end
+ */