61 lines · plain
1; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 < %s | FileCheck %s2; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 < %s | FileCheck %s3 4define i64 @testOptimizeLiAddToAddi(i64 %a) {5; CHECK-LABEL: testOptimizeLiAddToAddi:6; CHECK: addi 3, 3, 24447; CHECK: bl callv8; CHECK: addi 3, 30, 2349; CHECK: bl call10; CHECK: blr11entry:12 %cmp = icmp sgt i64 %a, 3313 br i1 %cmp, label %if.then, label %if.end14 15if.then:16 tail call void @callv()17 br label %if.end18 19if.end:20 %add.0 = phi i64 [ 234, %if.then ], [ 2444, %entry ]21 %add2 = add nsw i64 %add.0, %a22 %call = tail call i64 @call(i64 %add2)23 ret i64 %call24}25 26define i64 @testThreePhiIncomings(i64 %a) {27; CHECK-LABEL: testThreePhiIncomings:28; CHECK: bl callv29; CHECK: addi 3, 30, 23430; CHECK: addi 3, 30, 244431; CHECK: bl callv32; CHECK: addi 3, 30, 34533; CHECK: bl call34; CHECK: blr35entry:36 %cmp = icmp slt i64 %a, 3337 br i1 %cmp, label %if.then, label %if.else38 39if.then:40 tail call void @callv()41 br label %if.end442 43if.else:44 %cmp1 = icmp slt i64 %a, 5545 br i1 %cmp1, label %if.then2, label %if.end446 47if.then2:48 tail call void @callv()49 br label %if.end450 51if.end4:52 %add.0 = phi i64 [ 234, %if.then ], [ 345, %if.then2 ], [ 2444, %if.else ]53 %add5 = add nsw i64 %add.0, %a54 %call = tail call i64 @call(i64 %add5)55 ret i64 %call56}57 58declare void @callv(...)59 60declare i64 @call(i64)61