brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.8 KiB · 90bcefa Raw
215 lines · plain
1# RUN: llc -O0 -mtriple=mips -mcpu=mips32r3 -mattr=+micromips,+eva -start-after=finalize-isel \2# RUN:     -filetype obj %s -o - | llvm-objdump --no-print-imm-hex --mattr=+eva -d - | FileCheck %s3 4--- |5 6  @wArray = global [13 x i32] zeroinitializer, align 47  @hArray = global [13 x i16] zeroinitializer, align 28  @bArray = global [13 x i8] zeroinitializer, align 19 10  ; Function Attrs: noinline nounwind optnone11  define void @_Z3foov() {12  entry:13    %0 = load i8, ptr getelementptr inbounds ([13 x i8], ptr @bArray, i32 0, i32 5), align 114    %conv = sext i8 %0 to i3215    %sub = sub nsw i32 %conv, 716    %conv1 = trunc i32 %sub to i817    store i8 %conv1, ptr getelementptr inbounds ([13 x i8], ptr @bArray, i32 0, i32 3), align 118    %1 = load i8, ptr getelementptr inbounds ([13 x i8], ptr @bArray, i32 0, i32 5), align 119    %conv2 = sext i8 %1 to i3220    %sub3 = sub nsw i32 %conv2, 721    %conv4 = trunc i32 %sub3 to i822    store i8 %conv4, ptr getelementptr inbounds ([13 x i8], ptr @bArray, i32 0, i32 3), align 123    %2 = load i16, ptr getelementptr inbounds ([13 x i16], ptr @hArray, i32 0, i32 5), align 224    %conv5 = sext i16 %2 to i3225    %sub6 = sub nsw i32 %conv5, 726    %conv7 = trunc i32 %sub6 to i1627    store i16 %conv7, ptr getelementptr inbounds ([13 x i16], ptr @hArray, i32 0, i32 3), align 228    %3 = load i16, ptr getelementptr inbounds ([13 x i16], ptr @hArray, i32 0, i32 5), align 229    %conv8 = sext i16 %3 to i3230    %sub9 = sub nsw i32 %conv8, 731    %conv10 = trunc i32 %sub9 to i1632    store i16 %conv10, ptr getelementptr inbounds ([13 x i16], ptr @hArray, i32 0, i32 3), align 233    %4 = load i32, ptr getelementptr inbounds ([13 x i32], ptr @wArray, i32 0, i32 5), align 434    %sub11 = sub nsw i32 %4, 735    store i32 %sub11, ptr getelementptr inbounds ([13 x i32], ptr @wArray, i32 0, i32 3), align 436    ret void37  }38 39  ; Function Attrs: noinline nounwind optnone40  define i32 @_Z3barPi(ptr %z) {41  entry:42    %z.addr = alloca ptr, align 443    store ptr %z, ptr %z.addr, align 444    %0 = load ptr, ptr %z.addr, align 445    fence seq_cst46    %1 = atomicrmw add ptr %0, i32 42 monotonic47    fence seq_cst48    %2 = add i32 %1, 4249    ret i32 %250  }51 52...53---54name:            _Z3foov55alignment:       456exposesReturnsTwice: false57legalized:       false58regBankSelected: false59selected:        false60tracksRegLiveness: true61registers:62  - { id: 0, class: gpr32, preferred-register: '' }63  - { id: 1, class: gpr32, preferred-register: '' }64  - { id: 2, class: gpr32, preferred-register: '' }65  - { id: 3, class: gpr32, preferred-register: '' }66  - { id: 4, class: gpr32, preferred-register: '' }67  - { id: 5, class: gpr32, preferred-register: '' }68  - { id: 6, class: gpr32, preferred-register: '' }69  - { id: 7, class: gpr32, preferred-register: '' }70  - { id: 8, class: gpr32, preferred-register: '' }71  - { id: 9, class: gpr32, preferred-register: '' }72  - { id: 10, class: gpr32, preferred-register: '' }73  - { id: 11, class: gpr32, preferred-register: '' }74  - { id: 12, class: gpr32, preferred-register: '' }75  - { id: 13, class: gpr32, preferred-register: '' }76  - { id: 14, class: gpr32, preferred-register: '' }77  - { id: 15, class: gpr32, preferred-register: '' }78liveins:79frameInfo:80  isFrameAddressTaken: false81  isReturnAddressTaken: false82  hasStackMap:     false83  hasPatchPoint:   false84  stackSize:       085  offsetAdjustment: 086  maxAlignment:    187  adjustsStack:    false88  hasCalls:        false89  stackProtector:  ''90  maxCallFrameSize: 429496729591  hasOpaqueSPAdjustment: false92  hasVAStart:      false93  hasMustTailInVarArgFunc: false94  savePoint:       []95  restorePoint:    []96fixedStack:97stack:98constants:99body:             |100  bb.0.entry:101    %0:gpr32 = LUi target-flags(mips-abs-hi) @bArray102    %1:gpr32 = ADDiu killed %0, target-flags(mips-abs-lo) @bArray103    %2:gpr32 = LBuE %1, 5 :: (dereferenceable load (s8) from `ptr getelementptr inbounds ([13 x i8], ptr @bArray, i32 0, i32 5)`)104    %3:gpr32 = ADDiu killed %2, -7105    SBE killed %3, %1, 3 :: (store (s8) into `ptr getelementptr inbounds ([13 x i8], ptr @bArray, i32 0, i32 3)`)106    %4:gpr32 = LBE %1, 5 :: (dereferenceable load (s8) from `ptr getelementptr inbounds ([13 x i8], ptr @bArray, i32 0, i32 5)`)107    %5:gpr32 = ADDiu killed %4, -7108    SBE killed %5, %1, 3 :: (store (s8) into `ptr getelementptr inbounds ([13 x i8], ptr @bArray, i32 0, i32 3)`)109    %6:gpr32 = LUi target-flags(mips-abs-hi) @hArray110    %7:gpr32 = ADDiu killed %6, target-flags(mips-abs-lo) @hArray111    %8:gpr32 = LHuE %7, 10 :: (dereferenceable load (s16) from `ptr getelementptr inbounds ([13 x i16], ptr @hArray, i32 0, i32 5)`)112    %9:gpr32 = ADDiu killed %8, -7113    SHE killed %9, %7, 6 :: (store (s16) into `ptr getelementptr inbounds ([13 x i16], ptr @hArray, i32 0, i32 3)`)114    %10:gpr32 = LHE %7, 10 :: (dereferenceable load (s16) from `ptr getelementptr inbounds ([13 x i16], ptr @hArray, i32 0, i32 5)`)115    %11:gpr32 = ADDiu killed %10, -7116    SHE killed %11, %7, 6 :: (store (s16) into `ptr getelementptr inbounds ([13 x i16], ptr @hArray, i32 0, i32 3)`)117    %12:gpr32 = LUi target-flags(mips-abs-hi) @wArray118    %13:gpr32 = ADDiu killed %12, target-flags(mips-abs-lo) @wArray119    %14:gpr32 = LWE %13, 20 :: (dereferenceable load (s32) from `ptr getelementptr inbounds ([13 x i32], ptr @wArray, i32 0, i32 5)`)120    %15:gpr32 = ADDiu killed %14, -7121    SWE killed %15, %13, 12 :: (store (s32) into `ptr getelementptr inbounds ([13 x i32], ptr @wArray, i32 0, i32 3)`)122    RetRA123 124...125---126name:            _Z3barPi127alignment:       4128exposesReturnsTwice: false129legalized:       false130regBankSelected: false131selected:        false132tracksRegLiveness: true133registers:134  - { id: 0, class: gpr32, preferred-register: '' }135  - { id: 1, class: gpr32, preferred-register: '' }136  - { id: 2, class: gpr32, preferred-register: '' }137  - { id: 3, class: gpr32, preferred-register: '' }138  - { id: 4, class: gpr32, preferred-register: '' }139  - { id: 5, class: gpr32, preferred-register: '' }140  - { id: 6, class: gpr32, preferred-register: '' }141  - { id: 7, class: gpr32, preferred-register: '' }142  - { id: 8, class: gpr32, preferred-register: '' }143liveins:144  - { reg: '$a0', virtual-reg: '%0' }145frameInfo:146  isFrameAddressTaken: false147  isReturnAddressTaken: false148  hasStackMap:     false149  hasPatchPoint:   false150  stackSize:       0151  offsetAdjustment: 0152  maxAlignment:    4153  adjustsStack:    false154  hasCalls:        false155  stackProtector:  ''156  maxCallFrameSize: 4294967295157  hasOpaqueSPAdjustment: false158  hasVAStart:      false159  hasMustTailInVarArgFunc: false160  savePoint:       []161  restorePoint:    []162fixedStack:163stack:164  - { id: 0, name: z.addr, type: default, offset: 0, size: 4, alignment: 4,165      stack-id: default, callee-saved-register: '', callee-saved-restored: true,166      debug-info-variable: '', debug-info-expression: '',167      debug-info-location: '' }168constants:169body:             |170  bb.0.entry:171    successors: %bb.1(0x80000000)172    liveins: $a0173 174    %0:gpr32 = COPY $a0175    %1:gpr32 = COPY %0176    SW %0, %stack.0.z.addr, 0 :: (store (s32) into %ir.z.addr)177    %2:gpr32 = LW %stack.0.z.addr, 0 :: (dereferenceable load (s32) from %ir.z.addr)178    SYNC 0179    %3:gpr32 = ADDiu $zero, 42180 181  bb.1.entry:182    successors: %bb.1(0x40000000), %bb.2(0x40000000)183 184    %4:gpr32 = LLE %2, 0185    %6:gpr32 = ADDu %4, %3186    %8:gpr32 = SCE %6, %2, 0187    BEQ %8, $zero, %bb.1, implicit-def $at188 189  bb.2.entry:190    SYNC 0191    %5:gpr32 = ADDiu killed %4, 42192    $v0 = COPY %5193    CACHEE %1, 5, 2194    PREFE %1, 5, 2195    RetRA implicit $v0196 197...198 199# CHECK: 60 22 60 05  lbue  $1, 5($2)200# CHECK: 60 22 68 05  lbe $1, 5($2)201# CHECK: 60 22 a8 03  sbe $1, 3($2)202 203# CHECK: 60 22 62 0a  lhue  $1, 10($2)204# CHECK: 60 22 6a 0a  lhe $1, 10($2)205# CHECK: 60 22 aa 06  she $1, 6($2)206 207# CHECK: 60 22 6e 14  lwe $1, 20($2)208# CHECK: 60 22 ae 0c  swe $1, 12($2)209 210# CHECK: 60 22 6c 00  lle $1, 0($2)211# CHECK: 60 22 ac 00  sce $1, 0($2)212 213# CHECK: 60 41 a6 05  cachee  2, 5($1)214# CHECK: 60 41 a4 05  prefe 2, 5($1)215