[Alignment][NFC] Use Align with TargetLowering::setMinFunctionAlignment
[llvm-core.git] / test / CodeGen / PowerPC / shrink-wrap.ll
blob74a83fee14e8267f780f6b20db24f642e0fb8db5
1 ; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64le-unknown-unknown -mcpu=pwr9 | FileCheck  %s
2 define signext i32 @shrinkwrapme(i32 signext %a, i32 signext %lim) {
3 entry:
4   %cmp5 = icmp sgt i32 %lim, 0
5   br i1 %cmp5, label %for.body.preheader, label %for.cond.cleanup
7  for.body.preheader:                               ; preds = %entry
8   br label %for.body
10  for.cond.cleanup.loopexit:                        ; preds = %for.body
11   br label %for.cond.cleanup
13  for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %entry
14   %Ret.0.lcssa = phi i32 [ 0, %entry ], [ %0, %for.cond.cleanup.loopexit ]
15   ret i32 %Ret.0.lcssa
17  for.body:                                         ; preds = %for.body.preheader, %for.body
18   %i.07 = phi i32 [ %inc, %for.body ], [ 0, %for.body.preheader ]
19   %Ret.06 = phi i32 [ %0, %for.body ], [ 0, %for.body.preheader ]
20   %0 = tail call i32 asm "add $0, $1, $2", "=r,r,r,~{r14},~{r15},~{r16},~{r17},~{r18},~{r19},~{r20},~{r21},~{r22},~{r23},~{r24},~{r25},~{r26},~{r27},~{r28},~{r29},~{r30},~{r31}"(i32 %a, i32 %Ret.06)
21   %inc = add nuw nsw i32 %i.07, 1
22   %exitcond = icmp eq i32 %inc, %lim
23   br i1 %exitcond, label %for.cond.cleanup.loopexit, label %for.body
25 ; CHECK-LABEL: shrinkwrapme
26 ; CHECK:       # %bb.0:
27 ; CHECK-NEXT:    cmpwi
28 ; Prolog code
29 ; CHECK:         std 
30 ; CHECK:         std 
31 ; CHECK:         std 
32 ; CHECK:         std 
33 ; CHECK:         blt 0, .LBB0_3
34 ; CHECK:       # %bb.1:
35 ; CHECK-NEXT:    addi
36 ; CHECK-NEXT:    clrldi
37 ; CHECK-NEXT:    addi
38 ; CHECK-NEXT:    mtctr
39 ; CHECK-NEXT:    li 
40 ; CHECK:       .LBB0_2: 
41 ; CHECK:         add
42 ; CHECK:         bdnz .LBB0_2 
43 ; CHECK-NEXT:    b .LBB0_4
44 ; CHECK:       .LBB0_3: 
45 ; CHECK-NEXT:    li 
46 ; CHECK:       .LBB0_4: 
47 ; Epilog code
48 ; CHECK:         ld 
49 ; CHECK:         ld 
50 ; CHECK:         extsw
51 ; CHECK:         ld 
52 ; CHECK:         ld 
53 ; CHECK:         blr