brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.2 KiB · 00ae719 Raw
128 lines · plain
1# RUN: llc -mcpu=pwr8 -mtriple=powerpc64le-unknown-linux-gnu -start-after \2# RUN:   virtregrewriter -ppc-asm-full-reg-names -verify-machineinstrs %s \3# RUN:   -o - | FileCheck %s4# RUN: llc -mcpu=pwr9 -mtriple=powerpc64le-unknown-linux-gnu -start-after \5# RUN:   virtregrewriter -ppc-asm-full-reg-names -verify-machineinstrs %s \6# RUN:   -o - | FileCheck %s7# RUN: llc -mcpu=pwr10 -mtriple=powerpc64le-unknown-linux-gnu -start-after \8# RUN:   virtregrewriter -ppc-asm-full-reg-names -verify-machineinstrs %s \9# RUN:   -o - | FileCheck %s10 11--- |12  ; ModuleID = 'a.ll'13  source_filename = "a.c"14  target datalayout = "e-m:e-i64:64-n32:64"15  target triple = "powerpc64le-unknown-linux-gnu"16  17  ; Function Attrs: nounwind18  define void @test(i32 signext %a6, i32 signext %a7, i32 signext %a17) local_unnamed_addr #0 {19  entry:20    %cmp27 = icmp slt i32 %a6, %a721    %cmp29 = icmp sgt i32 %a6, %a1722    %or.cond781 = or i1 %cmp27, %cmp2923    tail call void asm sideeffect "# nothing", "~{cr0},~{cr1},~{cr2},~{cr3},~{cr4},~{cr5},~{cr6},~{cr7},~{memory}"() #1, !srcloc !124    br label %if.end32625  26  if.end326:                                        ; preds = %entry27    br i1 %or.cond781, label %if.then330, label %if.end33128  29  if.then330:                                       ; preds = %if.end32630    unreachable31  32  if.end331:                                        ; preds = %if.end32633    ret void34  }35  36  ; Function Attrs: nounwind37  declare void @llvm.stackprotector(ptr, ptr) #138  39  attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "use-soft-float"="false" }40  attributes #1 = { nounwind }41  42  !llvm.ident = !{!0}43  44  !0 = !{!"clang version 8.0.0 (trunk 349357)"}45  !1 = !{i32 3373}46 47...48---49name:            test50alignment:       1651exposesReturnsTwice: false52legalized:       false53regBankSelected: false54selected:        false55failedISel:      false56tracksRegLiveness: true57hasWinCFI:       false58registers:       []59liveins:         60  - { reg: '$x3', virtual-reg: '' }61  - { reg: '$x4', virtual-reg: '' }62  - { reg: '$x5', virtual-reg: '' }63frameInfo:       64  isFrameAddressTaken: false65  isReturnAddressTaken: false66  hasStackMap:     false67  hasPatchPoint:   false68  stackSize:       069  offsetAdjustment: 070  maxAlignment:    471  adjustsStack:    false72  hasCalls:        false73  stackProtector:  ''74  maxCallFrameSize: 429496729575  cvBytesOfCalleeSavedRegisters: 076  hasOpaqueSPAdjustment: false77  hasVAStart:      false78  hasMustTailInVarArgFunc: false79  localFrameSize:  080  savePoint:       []81  restorePoint:    []82fixedStack:      []83stack:           84  - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4, 85      stack-id: default, callee-saved-register: '', callee-saved-restored: true,86      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }87  - { id: 1, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4, 88      stack-id: default, callee-saved-register: '', callee-saved-restored: true,89      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }90  - { id: 2, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4, 91      stack-id: default, callee-saved-register: '', callee-saved-restored: true,92      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }93constants:       []94body:             |95  bb.0.entry:96    liveins: $x3, $x4, $x597  98    renamable $cr0 = CMPW renamable $r3, renamable $r4, implicit $x499    renamable $cr1 = CMPW renamable $r3, renamable $r5, implicit $x5, implicit killed $x3100    renamable $cr5lt = CRNOR renamable $cr0lt, renamable $cr1gt, implicit killed $cr0101    renamable $cr5gt = COPY renamable $cr1gt, implicit $cr1102    ; CHECK: crnor 4*cr5+lt, lt, 4*cr1+gt103    ; CHECK: crmove 4*cr5+gt, 4*cr1+gt104    SPILL_CRBIT killed renamable $cr5lt, 0, %stack.0 :: (store (s32) into %stack.0)105    renamable $cr1 = CMPW renamable $r4, renamable $r5, implicit killed $x5, implicit killed $x4106    SPILL_CRBIT killed renamable $cr5gt, 0, %stack.1 :: (store (s32) into %stack.1)107    SPILL_CRBIT killed renamable $cr1gt, 0, %stack.2 :: (store (s32) into %stack.2)108    INLINEASM &"# nothing", 25, 12, implicit-def dead early-clobber $cr0, 12, implicit-def dead early-clobber $cr1, 12, implicit-def dead early-clobber $cr2, 12, implicit-def dead early-clobber $cr3, 12, implicit-def dead early-clobber $cr4, 12, implicit-def dead early-clobber $cr5, 12, implicit-def dead early-clobber $cr6, 12, implicit-def dead early-clobber $cr7, !1109    BLR8 implicit $lr8, implicit $rm110  111  bb.1.if.end326:112    successors: %bb.2(0x00000001), %bb.3(0x7fffffff)113  114    renamable $cr5lt = RESTORE_CRBIT 0, %stack.0 :: (load (s32) from %stack.0)115    renamable $cr5gt = RESTORE_CRBIT 0, %stack.1 :: (load (s32) from %stack.1)116    renamable $cr5lt = CROR killed renamable $cr5lt, killed renamable $cr5gt117    BCn killed renamable $cr5lt, %bb.3118    B %bb.2119  120  bb.2.if.then330:121    successors: 122  123  124  bb.3.if.end331:125    BLR8 implicit $lr8, implicit $rm126 127...128