Find available scratch register to use in function prologue and epilogue as part...
[oota-llvm.git] / test / CodeGen / PowerPC / ppc-shrink-wrapping.ll
index 9ce302d12c8e8213ca27a4727f59dae6c3494af0..a23888425bf5492e3a38051bc76b5098d031fb5d 100644 (file)
@@ -47,7 +47,7 @@
 ;
 ; Without shrink-wrapping, epilogue is in the exit block.
 ; Epilogue code. (What we pop does not matter.)
-; DISABLE: mtlr 0
+; DISABLE: mtlr {{[0-9]+}}
 ; DISABLE-NEXT: blr
 ;
 
@@ -81,7 +81,7 @@ declare i32 @doSomething(i32, i32*)
 ;
 ; Prologue code.
 ; Make sure we save the link register
-; CHECK: mflr 0
+; CHECK: mflr {{[0-9]+}}
 ;
 ; DISABLE: cmplwi 0, 3, 0
 ; DISABLE: beq 0, .[[ELSE_LABEL:LBB[0-9_]+]]
@@ -110,7 +110,7 @@ declare i32 @doSomething(i32, i32*)
 ; DISABLE: .[[EPILOG_BB]]: # %if.end
 ;
 ; Epilogue code.
-; CHECK: mtlr 0
+; CHECK: mtlr {{[0-9]+}}
 ; CHECK-NEXT: blr
 ;
 ; ENABLE: .[[ELSE_LABEL]]: # %if.else
@@ -155,7 +155,7 @@ declare i32 @something(...)
 ; CHECK-LABEL: freqSaveAndRestoreOutsideLoop2:
 ; Prologue code.
 ; Make sure we save the link register before the call
-; CHECK: mflr 0
+; CHECK: mflr {{[0-9]+}}
 ;
 ; Loop preheader
 ; CHECK-DAG: li [[SUM:[0-9]+]], 0
@@ -171,7 +171,7 @@ declare i32 @something(...)
 ;
 ; Next BB
 ; CHECK: %for.exit
-; CHECK: mtlr 0
+; CHECK: mtlr {{[0-9]+}}
 ; CHECK-NEXT: blr
 define i32 @freqSaveAndRestoreOutsideLoop2(i32 %cond) {
 entry:
@@ -208,7 +208,7 @@ for.end:                                          ; preds = %for.body
 ;
 ; Prologue code.
 ; Make sure we save the link register 
-; CHECK: mflr 0
+; CHECK: mflr {{[0-9]+}}
 ;
 ; DISABLE: cmplwi 0, 3, 0
 ; DISABLE-NEXT: beq 0, .[[ELSE_LABEL:LBB[0-9_]+]]
@@ -238,7 +238,7 @@ for.end:                                          ; preds = %for.body
 ;
 ; DISABLE: .[[EPILOG_BB]]: # %if.end
 ; Epilog code
-; CHECK: mtlr 0
+; CHECK: mtlr {{[0-9]+}}
 ; CHECK-NEXT: blr
 ; 
 ; ENABLE: .[[ELSE_LABEL]]: # %if.else
@@ -288,7 +288,7 @@ declare void @somethingElse(...)
 ;
 ; Prologue code.
 ; Make sure we save the link register
-; CHECK: mflr 0
+; CHECK: mflr {{[0-9]+}}
 ;
 ; DISABLE: cmplwi 0, 3, 0
 ; DISABLE-NEXT: beq 0, .[[ELSE_LABEL:LBB[0-9_]+]]
@@ -318,7 +318,7 @@ declare void @somethingElse(...)
 ; DISABLE: .[[EPILOG_BB]]: # %if.end
 ;
 ; Epilogue code.
-; CHECK: mtlr 0
+; CHECK: mtlr {{[0-9]+}}
 ; CHECK-NEXT: blr
 ;
 ; ENABLE: .[[ELSE_LABEL]]: # %if.else
@@ -439,7 +439,7 @@ if.end:                                           ; preds = %for.body, %if.else
 ; ENABLE-NEXT: beq 0, .[[ELSE_LABEL:LBB[0-9_]+]]
 ;
 ; Prologue code.
-; CHECK: mflr 0
+; CHECK: mflr {{[0-9]+}}
 ; 
 ; DISABLE: cmplwi 0, 3, 0
 ; DISABLE-NEXT: beq 0, .[[ELSE_LABEL:LBB[0-9_]+]]
@@ -455,7 +455,7 @@ if.end:                                           ; preds = %for.body, %if.else
 ; CHECK: slwi 3, 3, 3
 ; DISABLE: b .[[EPILOGUE_BB:LBB[0-9_]+]]
 ;
-; ENABLE: mtlr 0
+; ENABLE: mtlr {{[0-9]+}}
 ; ENABLE-NEXT: blr
 ;
 ; CHECK: .[[ELSE_LABEL]]: # %if.else
@@ -492,23 +492,23 @@ declare i32 @someVariadicFunc(i32, ...)
 ; and it hurts the binary size.
 ;
 ; CHECK-LABEL: noreturn:
-; DISABLE: mflr 0
+; DISABLE: mflr {{[0-9]+}}
 ;
 ; CHECK: cmplwi 3, 0
 ; CHECK-NEXT: bne 0, .[[ABORT:LBB[0-9_]+]]
 ;
 ; CHECK: li 3, 42
 ;
-; DISABLE: mtlr 0
+; DISABLE: mtlr {{[0-9]+}}
 ;
 ; CHECK-NEXT: blr
 ;
 ; CHECK: .[[ABORT]]: # %if.abort
 ;
-; ENABLE: mflr 0
+; ENABLE: mflr {{[0-9]+}}
 ;
 ; CHECK: bl abort
-; ENABLE-NOT: mtlr 0
+; ENABLE-NOT: mtlr {{[0-9]+}}
 define i32 @noreturn(i8 signext %bad_thing) {
 entry:
   %tobool = icmp eq i8 %bad_thing, 0