forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			122 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
# RUN: llc -mcpu=pwr8 -mtriple=powerpc64le-unknown-linux-gnu -start-after \
 | 
						|
# RUN:   virtregrewriter -ppc-asm-full-reg-names -verify-machineinstrs %s \
 | 
						|
# RUN:   -o - | FileCheck %s
 | 
						|
 | 
						|
--- |
 | 
						|
  ; ModuleID = 'a.ll'
 | 
						|
  source_filename = "a.c"
 | 
						|
  target datalayout = "e-m:e-i64:64-n32:64"
 | 
						|
  target triple = "powerpc64le-unknown-linux-gnu"
 | 
						|
  
 | 
						|
  ; Function Attrs: nounwind
 | 
						|
  define void @test(i32 signext %a6, i32 signext %a7, i32 signext %a17) local_unnamed_addr #0 {
 | 
						|
  entry:
 | 
						|
    %cmp27 = icmp slt i32 %a6, %a7
 | 
						|
    %cmp29 = icmp sgt i32 %a6, %a17
 | 
						|
    %or.cond781 = or i1 %cmp27, %cmp29
 | 
						|
    tail call void asm sideeffect "# nothing", "~{cr0},~{cr1},~{cr2},~{cr3},~{cr4},~{cr5},~{cr6},~{cr7},~{memory}"() #1, !srcloc !1
 | 
						|
    br label %if.end326
 | 
						|
  
 | 
						|
  if.end326:                                        ; preds = %entry
 | 
						|
    br i1 %or.cond781, label %if.then330, label %if.end331
 | 
						|
  
 | 
						|
  if.then330:                                       ; preds = %if.end326
 | 
						|
    unreachable
 | 
						|
  
 | 
						|
  if.end331:                                        ; preds = %if.end326
 | 
						|
    ret void
 | 
						|
  }
 | 
						|
  
 | 
						|
  ; Function Attrs: nounwind
 | 
						|
  declare void @llvm.stackprotector(i8*, i8**) #1
 | 
						|
  
 | 
						|
  attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "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" "target-cpu"="ppc64le" "target-features"="+altivec,+bpermd,+crypto,+direct-move,+extdiv,+htm,+power8-vector,+vsx,-power9-vector,-qpx" "unsafe-fp-math"="false" "use-soft-float"="false" }
 | 
						|
  attributes #1 = { nounwind }
 | 
						|
  
 | 
						|
  !llvm.ident = !{!0}
 | 
						|
  
 | 
						|
  !0 = !{!"clang version 8.0.0 (trunk 349357)"}
 | 
						|
  !1 = !{i32 3373}  
 | 
						|
 | 
						|
...
 | 
						|
---
 | 
						|
name:            test
 | 
						|
alignment:       4
 | 
						|
exposesReturnsTwice: false
 | 
						|
legalized:       false
 | 
						|
regBankSelected: false
 | 
						|
selected:        false
 | 
						|
failedISel:      false
 | 
						|
tracksRegLiveness: true
 | 
						|
hasWinCFI:       false
 | 
						|
registers:       []
 | 
						|
liveins:         
 | 
						|
  - { reg: '$x3', virtual-reg: '' }
 | 
						|
  - { reg: '$x4', virtual-reg: '' }
 | 
						|
  - { reg: '$x5', virtual-reg: '' }
 | 
						|
frameInfo:       
 | 
						|
  isFrameAddressTaken: false
 | 
						|
  isReturnAddressTaken: false
 | 
						|
  hasStackMap:     false
 | 
						|
  hasPatchPoint:   false
 | 
						|
  stackSize:       0
 | 
						|
  offsetAdjustment: 0
 | 
						|
  maxAlignment:    4
 | 
						|
  adjustsStack:    false
 | 
						|
  hasCalls:        false
 | 
						|
  stackProtector:  ''
 | 
						|
  maxCallFrameSize: 4294967295
 | 
						|
  cvBytesOfCalleeSavedRegisters: 0
 | 
						|
  hasOpaqueSPAdjustment: false
 | 
						|
  hasVAStart:      false
 | 
						|
  hasMustTailInVarArgFunc: false
 | 
						|
  localFrameSize:  0
 | 
						|
  savePoint:       ''
 | 
						|
  restorePoint:    ''
 | 
						|
fixedStack:      []
 | 
						|
stack:           
 | 
						|
  - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4, 
 | 
						|
      stack-id: 0, callee-saved-register: '', callee-saved-restored: true, 
 | 
						|
      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
 | 
						|
  - { id: 1, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4, 
 | 
						|
      stack-id: 0, callee-saved-register: '', callee-saved-restored: true, 
 | 
						|
      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
 | 
						|
  - { id: 2, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4, 
 | 
						|
      stack-id: 0, callee-saved-register: '', callee-saved-restored: true, 
 | 
						|
      debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
 | 
						|
constants:       []
 | 
						|
body:             |
 | 
						|
  bb.0.entry:
 | 
						|
    liveins: $x3, $x4, $x5
 | 
						|
  
 | 
						|
    renamable $cr0 = CMPW renamable $r3, renamable $r4, implicit $x4
 | 
						|
    renamable $cr1 = CMPW renamable $r3, renamable $r5, implicit $x5, implicit killed $x3
 | 
						|
    renamable $cr5lt = CRNOR renamable $cr0lt, renamable $cr1gt, implicit killed $cr0
 | 
						|
    renamable $cr5gt = COPY renamable $cr1gt, implicit $cr1
 | 
						|
    ; CHECK: crnor 4*cr5+lt, lt, 4*cr1+gt
 | 
						|
    ; CHECK: cror 4*cr5+gt, 4*cr1+gt, 4*cr1+gt
 | 
						|
    SPILL_CRBIT killed renamable $cr5lt, 0, %stack.0 :: (store 4 into %stack.0)
 | 
						|
    renamable $cr1 = CMPW renamable $r4, renamable $r5, implicit killed $x5, implicit killed $x4
 | 
						|
    SPILL_CRBIT killed renamable $cr5gt, 0, %stack.1 :: (store 4 into %stack.1)
 | 
						|
    SPILL_CRBIT killed renamable $cr1gt, 0, %stack.2 :: (store 4 into %stack.2)
 | 
						|
    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, !1
 | 
						|
    BLR8 implicit $lr8, implicit $rm
 | 
						|
  
 | 
						|
  bb.1.if.end326:
 | 
						|
    successors: %bb.2(0x00000001), %bb.3(0x7fffffff)
 | 
						|
  
 | 
						|
    renamable $cr5lt = RESTORE_CRBIT 0, %stack.0 :: (load 4 from %stack.0)
 | 
						|
    renamable $cr5gt = RESTORE_CRBIT 0, %stack.1 :: (load 4 from %stack.1)
 | 
						|
    renamable $cr5lt = CROR killed renamable $cr5lt, killed renamable $cr5gt
 | 
						|
    BCn killed renamable $cr5lt, %bb.3
 | 
						|
    B %bb.2
 | 
						|
  
 | 
						|
  bb.2.if.then330:
 | 
						|
    successors: 
 | 
						|
  
 | 
						|
  
 | 
						|
  bb.3.if.end331:
 | 
						|
    BLR8 implicit $lr8, implicit $rm  
 | 
						|
 | 
						|
...
 |