# 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

# Test that MIPS unaligned load/store instructions can be mapped to their
# corresponding microMIPS instructions.
--- |
  define void @g(i32* %a, i32* %b) {
  entry:
    %0 = load i32, i32* %a, align 1
    store i32 %0, i32* %b, align 1
    ret void
  }

  define void @g2(i32* %a, i32* %b) {
  entry:
    %0 = load i32, i32* %a, align 1
    store i32 %0, i32* %b, align 1
    ret void
  }
...
---
name:            g
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
liveins:
  - { reg: '$a0', virtual-reg: '%0' }
  - { reg: '$a1', virtual-reg: '%1' }
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:
    liveins: $a0, $a1

    %1:gpr32 = COPY $a1
    %0:gpr32 = COPY $a0
    %3:gpr32 = IMPLICIT_DEF
    %2:gpr32 = LWL %0, 0, %3 :: (load 4 from %ir.a, align 1)
    %4:gpr32 = LWR %0, 3, %2 :: (load 4 from %ir.a, align 1)
    SWL %4, %1, 0 :: (store 4 into %ir.b, align 1)
    SWR %4, %1, 3 :: (store 4 into %ir.b, align 1)
    RetRA

...
---
name:            g2
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
failedISel:      false
tracksRegLiveness: true
liveins:
  - { reg: '$a0', virtual-reg: '%0' }
  - { reg: '$a1', virtual-reg: '%1' }
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:
    liveins: $a0, $a1

    %1:gpr32 = COPY $a1
    %0:gpr32 = COPY $a0
    %3:gpr32 = IMPLICIT_DEF
    %2:gpr32 = LWLE %0, 0, %3 :: (load 4 from %ir.a, align 1)
    %4:gpr32 = LWRE %0, 3, %2 :: (load 4 from %ir.a, align 1)
    SWLE %4, %1, 0 :: (store 4 into %ir.b, align 1)
    SWRE %4, %1, 3 :: (store 4 into %ir.b, align 1)
    RetRA

...

# CHECK-LABEL: g:
# CHECK:  0: 60 24 00 00   lwl $1, 0($4)
# CHECK:  4: 60 24 10 03   lwr $1, 3($4)
# CHECK:  8: 60 25 80 00   swl $1, 0($5)
# CHECK:  c: 60 25 90 03   swr $1, 3($5)

# CHECK-LABEL: g2:
# CHECK: 14: 60 24 64 00   lwle  $1, 0($4)
# CHECK: 18: 60 24 66 03   lwre  $1, 3($4)
# CHECK: 1c: 60 25 a0 00   swle  $1, 0($5)
# CHECK: 20: 60 25 a2 03   swre  $1, 3($5)
