Skip to content

Commit a1d0c57

Browse files
committed
Add test from #166141
1 parent d06f78e commit a1d0c57

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
; RUN: llc -mtriple riscv64 -mattr=+d -riscv-enable-live-variables --stop-after=riscv-live-variables -riscv-liveness-update-kills < %s | FileCheck %s
2+
3+
; Issue: #166141 Pessimistic MachineLICM due to missing liveness info.
4+
5+
; CHECK: %42:fpr64 = nofpexcept FMUL_D killed %2, killed %41, 7, implicit $frm
6+
7+
define void @f(ptr %p) {
8+
entry:
9+
br label %loop
10+
11+
loop:
12+
%iv = phi i64 [0, %entry], [%iv.next, %latch]
13+
14+
%gep = getelementptr double, ptr %p, i64 %iv
15+
16+
%x = load double, ptr %gep
17+
%y0 = fmul double %x, %x
18+
%y1 = fmul double %y0, %y0
19+
%y2 = fmul double %y1, %y1
20+
%y3 = fmul double %y2, %y2
21+
%y4 = fmul double %y3, %y3
22+
%y5 = fmul double %y4, %y4
23+
%y6 = fmul double %y5, %y5
24+
%y7 = fmul double %y6, %y6
25+
%y8 = fmul double %y7, %y7
26+
%y9 = fmul double %y8, %y8
27+
%y10 = fmul double %y9, %y9
28+
%y11 = fmul double %y10, %y10
29+
%y12 = fmul double %y11, %y11
30+
%y13 = fmul double %y12, %y12
31+
%y14 = fmul double %y13, %y13
32+
%y15 = fmul double %y14, %y14
33+
%y16 = fmul double %y15, %y15
34+
%y17 = fmul double %y16, %y16
35+
%y18 = fmul double %y17, %y17
36+
%y19 = fmul double %y18, %y18
37+
%y20 = fmul double %y19, %y19
38+
%y21 = fmul double %y20, %y20
39+
%y22 = fmul double %y21, %y21
40+
%y23 = fmul double %y22, %y22
41+
%y24 = fmul double %y23, %y23
42+
%y25 = fmul double %y24, %y24
43+
%y26 = fmul double %y25, %y25
44+
%y27 = fmul double %y26, %y26
45+
%y28 = fmul double %y27, %y27
46+
%y29 = fmul double %y28, %y28
47+
%y30 = fmul double %y29, %y29
48+
%y31 = fmul double %y30, %y30
49+
50+
%c = fcmp une double %y31, 0.0
51+
br i1 %c, label %if, label %latch
52+
53+
if:
54+
%z = fmul double %y31, 3.14159274101257324218750
55+
store double %z, ptr %gep
56+
br label %latch
57+
58+
latch:
59+
%iv.next = add i64 %iv, 1
60+
%ec = icmp eq i64 %iv.next, 1024
61+
br i1 %ec, label %exit, label %loop
62+
63+
exit:
64+
ret void
65+
}

0 commit comments

Comments
 (0)