# RUN: llc -O0 -march=mips -mcpu=mips32r3 -mattr=+micromips,+eva -start-after=finalize-isel \
# 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:       4
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:       4
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)
