brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · 4409ffd Raw
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