aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChen Zheng <czhengsz@cn.ibm.com>2022-07-12 07:41:49 -0400
committerChen Zheng <czhengsz@cn.ibm.com>2022-08-05 23:15:48 -0400
commite99ffe6ae86471b420c232be804d868c1dc83b50 (patch)
treed72b8e1d654f45abed62d53bd6dce2ad55844dde
parentbcac7b3acb1972bdfabe3c84f51243e9a353e7fe (diff)
-rw-r--r--llvm/test/CodeGen/PowerPC/pr56469.ll34
1 files changed, 34 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/PowerPC/pr56469.ll b/llvm/test/CodeGen/PowerPC/pr56469.ll
new file mode 100644
index 000000000000..4ce2ad39cde8
--- /dev/null
+++ b/llvm/test/CodeGen/PowerPC/pr56469.ll
@@ -0,0 +1,34 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-openbsd < %s | FileCheck %s
+
+@.str = private constant [32 x i8] c"i = %g, j = %g, k = %g, l = %g\0A\00", align 1
+
+define void @callee(float %a, float %b, float %c, float %d, float %e, float %f, float %g, float %h, float %i, float %j, float %k, float %l) nounwind {
+; CHECK-LABEL: callee:
+; CHECK: # %bb.0: # %entry
+; CHECK-NEXT: mflr 0
+; CHECK-NEXT: stw 0, 4(1)
+; CHECK-NEXT: stwu 1, -16(1)
+; CHECK-NEXT: lfs 1, 24(1)
+; CHECK-NEXT: lis 3, .L.str@ha
+; CHECK-NEXT: lfs 2, 32(1)
+; CHECK-NEXT: la 3, .L.str@l(3)
+; CHECK-NEXT: lfs 3, 40(1)
+; CHECK-NEXT: creqv 6, 6, 6
+; CHECK-NEXT: lfs 4, 48(1)
+; CHECK-NEXT: bl printf
+; CHECK-NEXT: lwz 0, 20(1)
+; CHECK-NEXT: addi 1, 1, 16
+; CHECK-NEXT: mtlr 0
+; CHECK-NEXT: blr
+entry:
+ %conv = fpext float %i to double
+ %conv1 = fpext float %j to double
+ %conv2 = fpext float %k to double
+ %conv3 = fpext float %l to double
+ %call = tail call signext i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str, i64 0, i64 0), double %conv, double %conv1, double %conv2, double %conv3)
+ ret void
+}
+
+declare signext i32 @printf(i8* nocapture readonly, ...)
+