; RUN: llvm-mc -triple avr -mattr=sram -show-encoding < %s | FileCheck %s
; RUN: llvm-mc -filetype=obj -triple avr -mattr=sram < %s \
; RUN: | llvm-objdump -dr --mattr=sram - | FileCheck --check-prefix=INST %s
foo:
; Normal
ld r10, X
ld r17, X
ld r30, Y
ld r19, Y
ld r10, Z
ld r2, Z
; Postincremenet
ld r10, X+
ld r17, X+
ld r30, Y+
ld r19, Y+
ld r10, Z+
ld r2, Z+
; Predecrement
ld r10, -X
ld r17, -X
ld r30, -Y
ld r19, -Y
ld r10, -Z
ld r2, -Z
; Normal
; CHECK: ld r10, X ; encoding: [0xac,0x90]
; CHECK: ld r17, X ; encoding: [0x1c,0x91]
; CHECK: ld r30, Y ; encoding: [0xe8,0x81]
; CHECK: ld r19, Y ; encoding: [0x38,0x81]
; CHECK: ld r10, Z ; encoding: [0xa0,0x80]
; CHECK: ld r2, Z ; encoding: [0x20,0x80]
; Postincrement
; CHECK: ld r10, X+ ; encoding: [0xad,0x90]
; CHECK: ld r17, X+ ; encoding: [0x1d,0x91]
; CHECK: ld r30, Y+ ; encoding: [0xe9,0x91]
; CHECK: ld r19, Y+ ; encoding: [0x39,0x91]
; CHECK: ld r10, Z+ ; encoding: [0xa1,0x90]
; CHECK: ld r2, Z+ ; encoding: [0x21,0x90]
; Predecrement
; CHECK: ld r10, -X ; encoding: [0xae,0x90]
; CHECK: ld r17, -X ; encoding: [0x1e,0x91]
; CHECK: ld r30, -Y ; encoding: [0xea,0x91]
; CHECK: ld r19, -Y ; encoding: [0x3a,0x91]
; CHECK: ld r10, -Z ; encoding: [0xa2,0x90]
; CHECK: ld r2, -Z ; encoding: [0x22,0x90]
; INST: ld r10, X
; INST: ld r17, X
; INST: ldd r30, Y+0
; INST: ldd r19, Y+0
; INST: ldd r10, Z+0
; INST: ldd r2, Z+0
; INST: ld r10, X+
; INST: ld r17, X+
; INST: ld r30, Y+
; INST: ld r19, Y+
; INST: ld r10, Z+
; INST: ld r2, Z+
; INST: ld r10, -X
; INST: ld r17, -X
; INST: ld r30, -Y
; INST: ld r19, -Y
; INST: ld r10, -Z
; INST: ld r2, -Z