# RUN: llc -O0 -march=mips -mcpu=mips32r3 -mattr=+micromips,+eva -start-after=expand-isel-pseudos \
# RUN:     -filetype obj %s -o - | llvm-objdump -mattr=+eva -d - | FileCheck %s

--- |

  @wArray = global [13 x i32] zeroinitializer, align 4
  @hArray = global [13 x i16] zeroinitializer, align 2
  @bArray = global [13 x i8] zeroinitializer, align 1

  ; Function Attrs: noinline nounwind optnone
  define void @_Z3foov() {
  entry:
    %0 = load i8, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @bArray, i32 0, i32 5), align 1
    %conv = sext i8 %0 to i32
    %sub = sub nsw i32 %conv, 7
    %conv1 = trunc i32 %sub to i8
    store i8 %conv1, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @bArray, i32 0, i32 3), align 1
    %1 = load i8, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @bArray, i32 0, i32 5), align 1
    %conv2 = sext i8 %1 to i32
    %sub3 = sub nsw i32 %conv2, 7
    %conv4 = trunc i32 %sub3 to i8
    store i8 %conv4, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @bArray, i32 0, i32 3), align 1
    %2 = load i16, i16* getelementptr inbounds ([13 x i16], [13 x i16]* @hArray, i32 0, i32 5), align 2
    %conv5 = sext i16 %2 to i32
    %sub6 = sub nsw i32 %conv5, 7
    %conv7 = trunc i32 %sub6 to i16
    store i16 %conv7, i16* getelementptr inbounds ([13 x i16], [13 x i16]* @hArray, i32 0, i32 3), align 2
    %3 = load i16, i16* getelementptr inbounds ([13 x i16], [13 x i16]* @hArray, i32 0, i32 5), align 2
    %conv8 = sext i16 %3 to i32
    %sub9 = sub nsw i32 %conv8, 7
    %conv10 = trunc i32 %sub9 to i16
    store i16 %conv10, i16* getelementptr inbounds ([13 x i16], [13 x i16]* @hArray, i32 0, i32 3), align 2
    %4 = load i32, i32* getelementptr inbounds ([13 x i32], [13 x i32]* @wArray, i32 0, i32 5), align 4
    %sub11 = sub nsw i32 %4, 7
    store i32 %sub11, i32* getelementptr inbounds ([13 x i32], [13 x i32]* @wArray, i32 0, i32 3), align 4
    ret void
  }

  ; Function Attrs: noinline nounwind optnone
  define i32 @_Z3barPi(i32* %z) {
  entry:
    %z.addr = alloca i32*, align 4
    store i32* %z, i32** %z.addr, align 4
    %0 = load i32*, i32** %z.addr, align 4
    fence seq_cst
    %1 = atomicrmw add i32* %0, i32 42 monotonic
    fence seq_cst
    %2 = add i32 %1, 42
    ret i32 %2
  }

...
---
name:            _Z3foov
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
registers:
  - { id: 0, class: gpr32, preferred-register: '' }
  - { id: 1, class: gpr32, preferred-register: '' }
  - { id: 2, class: gpr32, preferred-register: '' }
  - { id: 3, class: gpr32, preferred-register: '' }
  - { id: 4, class: gpr32, preferred-register: '' }
  - { id: 5, class: gpr32, preferred-register: '' }
  - { id: 6, class: gpr32, preferred-register: '' }
  - { id: 7, class: gpr32, preferred-register: '' }
  - { id: 8, class: gpr32, preferred-register: '' }
  - { id: 9, class: gpr32, preferred-register: '' }
  - { id: 10, class: gpr32, preferred-register: '' }
  - { id: 11, class: gpr32, preferred-register: '' }
  - { id: 12, class: gpr32, preferred-register: '' }
  - { id: 13, class: gpr32, preferred-register: '' }
  - { id: 14, class: gpr32, preferred-register: '' }
  - { id: 15, class: gpr32, preferred-register: '' }
liveins:
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    1
  adjustsStack:    false
  hasCalls:        false
  stackProtector:  ''
  maxCallFrameSize: 4294967295
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  savePoint:       ''
  restorePoint:    ''
fixedStack:
stack:
constants:
body:             |
  bb.0.entry:
    %0:gpr32 = LUi target-flags(mips-abs-hi) @bArray
    %1:gpr32 = ADDiu killed %0, target-flags(mips-abs-lo) @bArray
    %2:gpr32 = LBuE %1, 5 :: (dereferenceable load 1 from `i8* getelementptr inbounds ([13 x i8], [13 x i8]* @bArray, i32 0, i32 5)`)
    %3:gpr32 = ADDiu killed %2, -7
    SBE killed %3, %1, 3 :: (store 1 into `i8* getelementptr inbounds ([13 x i8], [13 x i8]* @bArray, i32 0, i32 3)`)
    %4:gpr32 = LBE %1, 5 :: (dereferenceable load 1 from `i8* getelementptr inbounds ([13 x i8], [13 x i8]* @bArray, i32 0, i32 5)`)
    %5:gpr32 = ADDiu killed %4, -7
    SBE killed %5, %1, 3 :: (store 1 into `i8* getelementptr inbounds ([13 x i8], [13 x i8]* @bArray, i32 0, i32 3)`)
    %6:gpr32 = LUi target-flags(mips-abs-hi) @hArray
    %7:gpr32 = ADDiu killed %6, target-flags(mips-abs-lo) @hArray
    %8:gpr32 = LHuE %7, 10 :: (dereferenceable load 2 from `i16* getelementptr inbounds ([13 x i16], [13 x i16]* @hArray, i32 0, i32 5)`)
    %9:gpr32 = ADDiu killed %8, -7
    SHE killed %9, %7, 6 :: (store 2 into `i16* getelementptr inbounds ([13 x i16], [13 x i16]* @hArray, i32 0, i32 3)`)
    %10:gpr32 = LHE %7, 10 :: (dereferenceable load 2 from `i16* getelementptr inbounds ([13 x i16], [13 x i16]* @hArray, i32 0, i32 5)`)
    %11:gpr32 = ADDiu killed %10, -7
    SHE killed %11, %7, 6 :: (store 2 into `i16* getelementptr inbounds ([13 x i16], [13 x i16]* @hArray, i32 0, i32 3)`)
    %12:gpr32 = LUi target-flags(mips-abs-hi) @wArray
    %13:gpr32 = ADDiu killed %12, target-flags(mips-abs-lo) @wArray
    %14:gpr32 = LWE %13, 20 :: (dereferenceable load 4 from `i32* getelementptr inbounds ([13 x i32], [13 x i32]* @wArray, i32 0, i32 5)`)
    %15:gpr32 = ADDiu killed %14, -7
    SWE killed %15, %13, 12 :: (store 4 into `i32* getelementptr inbounds ([13 x i32], [13 x i32]* @wArray, i32 0, i32 3)`)
    RetRA

...
---
name:            _Z3barPi
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
registers:
  - { id: 0, class: gpr32, preferred-register: '' }
  - { id: 1, class: gpr32, preferred-register: '' }
  - { id: 2, class: gpr32, preferred-register: '' }
  - { id: 3, class: gpr32, preferred-register: '' }
  - { id: 4, class: gpr32, preferred-register: '' }
  - { id: 5, class: gpr32, preferred-register: '' }
  - { id: 6, class: gpr32, preferred-register: '' }
  - { id: 7, class: gpr32, preferred-register: '' }
  - { id: 8, class: gpr32, preferred-register: '' }
liveins:
  - { reg: '$a0', virtual-reg: '%0' }
frameInfo:
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    4
  adjustsStack:    false
  hasCalls:        false
  stackProtector:  ''
  maxCallFrameSize: 4294967295
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  savePoint:       ''
  restorePoint:    ''
fixedStack:
stack:
  - { id: 0, name: z.addr, type: default, 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:
    successors: %bb.1(0x80000000)
    liveins: $a0

    %0:gpr32 = COPY $a0
    %1:gpr32 = COPY %0
    SW %0, %stack.0.z.addr, 0 :: (store 4 into %ir.z.addr)
    %2:gpr32 = LW %stack.0.z.addr, 0 :: (dereferenceable load 4 from %ir.z.addr)
    SYNC 0
    %3:gpr32 = ADDiu $zero, 42

  bb.1.entry:
    successors: %bb.1(0x40000000), %bb.2(0x40000000)

    %4:gpr32 = LLE %2, 0
    %6:gpr32 = ADDu %4, %3
    %8:gpr32 = SCE %6, %2, 0
    BEQ %8, $zero, %bb.1, implicit-def $at

  bb.2.entry:
    SYNC 0
    %5:gpr32 = ADDiu killed %4, 42
    $v0 = COPY %5
    CACHEE %1, 5, 2
    PREFE %1, 5, 2
    RetRA implicit $v0

...

# CHECK: 60 41 60 05  lbue  $2, 5($1)
# CHECK: 60 41 68 05  lbe $2, 5($1)
# CHECK: 60 41 a8 03  sbe $2, 3($1)

# CHECK: 60 41 62 0a  lhue  $2, 10($1)
# CHECK: 60 41 6a 0a  lhe $2, 10($1)
# CHECK: 60 41 aa 06  she $2, 6($1)

# CHECK: 60 41 6e 14  lwe $2, 20($1)
# CHECK: 60 41 ae 0c  swe $2, 12($1)

# CHECK: 60 41 6c 00  lle $2, 0($1)
# CHECK: 60 81 ac 00  sce $4, 0($1)

# CHECK: 60 41 a6 05  cachee  2, 5($1)
# CHECK: 60 41 a4 05  prefe 2, 5($1)
