123 lines · plain
1# RUN: llc -mtriple=aarch64-unknown-unknown -o - -verify-machineinstrs -run-pass=instruction-select -global-isel-abort=1 %s | FileCheck %s2--- |3 ; ModuleID = '/tmp/test.ll'4 source_filename = "/tmp/test.ll"5 target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"6 target triple = "aarch64-unknown-unknown"7 8 define i32 @test_phi(i32 %argc) {9 entry:10 %cmp = icmp ugt i32 %argc, 011 br i1 %cmp, label %case1, label %case212 13 case1: ; preds = %entry14 %tmp1 = add i32 %argc, 115 br label %return16 17 case2: ; preds = %entry18 %tmp2 = add i32 %argc, 219 br label %return20 21 return: ; preds = %case2, %case122 %res = phi i32 [ %tmp1, %case1 ], [ %tmp2, %case2 ]23 ret i32 %res24 }25 26 define ptr @test_phi_ptr(ptr %a, ptr %b, i1 %cond) {27 entry:28 ret ptr null29 }30 31...32---33name: test_phi34alignment: 435exposesReturnsTwice: false36legalized: true37regBankSelected: true38selected: false39tracksRegLiveness: true40registers:41 - { id: 0, class: gpr, preferred-register: '' }42 - { id: 1, class: gpr, preferred-register: '' }43 - { id: 2, class: gpr, preferred-register: '' }44 - { id: 3, class: gpr, preferred-register: '' }45 - { id: 4, class: gpr, preferred-register: '' }46 - { id: 5, class: gpr, preferred-register: '' }47 - { id: 6, class: gpr, preferred-register: '' }48 - { id: 7, class: gpr, preferred-register: '' }49 - { id: 8, class: gpr, preferred-register: '' }50liveins:51body: |52 bb.1.entry:53 successors: %bb.2.case1(0x40000000), %bb.3.case2(0x40000000)54 liveins: $w055 ; CHECK-LABEL: name: test_phi56 ; CHECK: [[RES:%.*]]:gpr32 = PHI57 58 %0(s32) = COPY $w059 %1(s32) = G_CONSTANT i32 060 %3(s32) = G_CONSTANT i32 161 %5(s32) = G_CONSTANT i32 262 %8(s32) = G_ICMP intpred(ugt), %0(s32), %163 G_BRCOND %8, %bb.2.case164 G_BR %bb.3.case265 66 bb.2.case1:67 successors: %bb.4.return(0x80000000)68 69 %4(s32) = G_ADD %0, %370 G_BR %bb.4.return71 72 bb.3.case2:73 successors: %bb.4.return(0x80000000)74 75 %6(s32) = G_ADD %0, %576 77 bb.4.return:78 %7(s32) = G_PHI %4(s32), %bb.2.case1, %6(s32), %bb.3.case279 $w0 = COPY %7(s32)80 RET_ReallyLR implicit $w081 82...83 84---85name: test_phi_ptr86alignment: 487exposesReturnsTwice: false88legalized: true89regBankSelected: true90selected: false91tracksRegLiveness: true92registers:93 - { id: 0, class: gpr, preferred-register: '' }94 - { id: 1, class: gpr, preferred-register: '' }95 - { id: 2, class: gpr, preferred-register: '' }96 - { id: 3, class: gpr, preferred-register: '' }97 - { id: 4, class: _, preferred-register: '' }98 - { id: 5, class: _, preferred-register: '' }99liveins:100body: |101 bb.0:102 successors: %bb.1, %bb.2103 liveins: $w2, $x0, $x1104 ; CHECK-LABEL: name: test_phi_ptr105 106 %0(p0) = COPY $x0107 %1(p0) = COPY $x1108 %2:gpr(s32) = COPY $w2109 G_BRCOND %2, %bb.1110 G_BR %bb.2111 112 bb.1:113 successors: %bb.2114 115 116 bb.2:117 ; CHECK: %{{[0-9]+}}:gpr64 = PHI %{{[0-9]+}}, %bb.0, %{{[0-9]+}}, %bb.1118 %3(p0) = G_PHI %0(p0), %bb.0, %1(p0), %bb.1119 $x0 = COPY %3(p0)120 RET_ReallyLR implicit $x0121 122...123