1 ; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-linux-gnu -O1 < %s | FileCheck %s
8 ; for (int i = 0; i < 175; i++)
14 ; for (int i = 0; i < 175; i++)
20 ; for (int i = 0; i < 175; i++)
26 ; for (int i = 0; i < 175; i++)
30 target datalayout = "E-m:e-p:32:32-i64:64-n32"
31 target triple = "powerpc-buildroot-linux-gnu"
33 @y = common global double 0.000000e+00, align 8
34 @x = common global double 0.000000e+00, align 8
36 define void @foo1() #0 {
37 store double 1.100000e+00, double* @y, align 8
38 store double 1.100000e+00, double* @x, align 8
41 ; <label>:1 ; preds = %2
42 %.lcssa = phi double [ %4, %2 ]
43 store double %.lcssa, double* @y, align 8
46 ; <label>:2 ; preds = %2, %0
47 %3 = phi double [ 1.100000e+00, %0 ], [ %4, %2 ]
48 %i.01 = phi i32 [ 0, %0 ], [ %5, %2 ]
49 %4 = fadd double %3, 1.100000e+00
50 %5 = add nuw nsw i32 %i.01, 1
51 %exitcond = icmp eq i32 %5, 75
52 br i1 %exitcond, label %1, label %2
55 ; CHECK-NOT: li [[REG1:[0-9]+]], 175
56 ; CHECK-NOT: mtctr [[REG1]]
59 define void @foo2() #0 {
60 store double 1.100000e+00, double* @y, align 8
61 store double 1.100000e+00, double* @x, align 8
64 ; <label>:1 ; preds = %2
65 %.lcssa = phi double [ %4, %2 ]
66 store double %.lcssa, double* @y, align 8
69 ; <label>:2 ; preds = %2, %0
70 %3 = phi double [ 1.100000e+00, %0 ], [ %4, %2 ]
71 %i.01 = phi i32 [ 0, %0 ], [ %5, %2 ]
72 %4 = fsub double 1.100000e+00, %3
73 %5 = add nuw nsw i32 %i.01, 1
74 %exitcond = icmp eq i32 %5, 75
75 br i1 %exitcond, label %1, label %2
78 ; CHECK-NOT: li [[REG1:[0-9]+]], 175
79 ; CHECK-NOT: mtctr [[REG1]]
82 define void @foo3() #0 {
83 store double 1.100000e+00, double* @y, align 8
84 store double 1.100000e+00, double* @x, align 8
87 ; <label>:1 ; preds = %2
88 %.lcssa = phi double [ %4, %2 ]
89 store double %.lcssa, double* @y, align 8
92 ; <label>:2 ; preds = %2, %0
93 %3 = phi double [ 1.100000e+00, %0 ], [ %4, %2 ]
94 %i.01 = phi i32 [ 0, %0 ], [ %5, %2 ]
95 %4 = fmul double %3, 1.100000e+00
96 %5 = add nuw nsw i32 %i.01, 1
97 %exitcond = icmp eq i32 %5, 75
98 br i1 %exitcond, label %1, label %2
101 ; CHECK-NOT: li [[REG1:[0-9]+]], 175
102 ; CHECK-NOT: mtctr [[REG1]]
105 define void @foo4() #0 {
106 store double 1.100000e+00, double* @y, align 8
107 store double 1.100000e+00, double* @x, align 8
110 ; <label>:1 ; preds = %2
111 %.lcssa = phi double [ %4, %2 ]
112 store double %.lcssa, double* @y, align 8
115 ; <label>:2 ; preds = %2, %0
116 %3 = phi double [ 1.100000e+00, %0 ], [ %4, %2 ]
117 %i.01 = phi i32 [ 0, %0 ], [ %5, %2 ]
118 %4 = fdiv double 1.100000e+00, %3
119 %5 = add nuw nsw i32 %i.01, 1
120 %exitcond = icmp eq i32 %5, 75
121 br i1 %exitcond, label %1, label %2
124 ; CHECK-NOT: li [[REG1:[0-9]+]], 175
125 ; CHECK-NOT: mtctr [[REG1]]
128 attributes #0 = { "use-soft-float"="true" }