| Index: tests_lit/assembler/arm32/mov-imm.ll
 | 
| diff --git a/tests_lit/assembler/arm32/mov-imm.ll b/tests_lit/assembler/arm32/mov-imm.ll
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..3b0925027727f70fc7718ea83a2eaf0fcaba9f7a
 | 
| --- /dev/null
 | 
| +++ b/tests_lit/assembler/arm32/mov-imm.ll
 | 
| @@ -0,0 +1,243 @@
 | 
| +; Show that we know how to translate move (immediate) ARM instructions.
 | 
| +
 | 
| +; RUN: %p2i --filetype=asm -i %s --target=arm32 \
 | 
| +; RUN:   | FileCheck %s --check-prefix=ASM
 | 
| +; RUN: %p2i --filetype=iasm -i %s --target=arm32 \
 | 
| +; RUN:   | FileCheck %s --check-prefix=IASM
 | 
| +
 | 
| +define internal i32 @Imm1() {
 | 
| +  ret i32 1
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: Imm1:
 | 
| +; ASM: mov	r0, #1
 | 
| +; IASM-LABEL: Imm1:
 | 
| +; IASM:	.byte 0x1
 | 
| +; IASM:	.byte 0x0
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +
 | 
| +define internal i32 @rotateFImmAA() {
 | 
| +  ; immediate = 0x000002a8 = b 0000 0000 0000 0000 0000 0010 1010 1000
 | 
| +  ret i32 680 
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotateFImmAA:
 | 
| +; ASM: mov	r0, #680
 | 
| +
 | 
| +; IASM-LABEL: rotateFImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0xf
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotateEImmAA() {
 | 
| + ; immediate = 0x00000aa0 = b 0000 0000 0000 0000 0000 1010 1010 0000
 | 
| +  ret i32 2720
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotateEImmAA:
 | 
| +; ASM: mov	r0, #2720
 | 
| +
 | 
| +; IASM-LABEL: rotateEImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0xe
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotateDImmAA() {
 | 
| +  ; immediate = 0x00002a80 = b 0000 0000 0000 0000 0010 1010 1000 0000
 | 
| +  ret i32 10880 
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotateDImmAA:
 | 
| +; ASM: mov	r0, #10880
 | 
| +
 | 
| +; IASM-LABEL: rotateDImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0xd
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotateCImmAA() {
 | 
| +  ; immediate = 0x0000aa00 = b 0000 0000 0000 0000 1010 1010 0000 0000
 | 
| +  ret i32 43520 
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotateCImmAA:
 | 
| +; ASM: mov	r0, #43520
 | 
| +
 | 
| +; IASM-LABEL: rotateCImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0xc
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotateBImmAA() {
 | 
| +  ; immediate = 0x0002a800 = b 0000 0000 0000 0010 1010 1000 0000 0000
 | 
| +  ret i32 174080 
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotateBImmAA:
 | 
| +; ASM: mov	r0, #174080
 | 
| +
 | 
| +; IASM-LABEL: rotateBImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0xb
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotateAImmAA() {
 | 
| +  ; immediate = 0x000aa000 = b 0000 0000 0000 1010 1010 0000 0000 0000
 | 
| +  ret i32 696320 
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotateAImmAA:
 | 
| +; ASM: mov	r0, #696320
 | 
| +
 | 
| +; IASM-LABEL: rotateAImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0xa
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotate9ImmAA() {
 | 
| +  ; immediate = 0x002a8000 = b 0000 0000 0010 1010 1000 0000 0000 0000
 | 
| +  ret i32 2785280
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotate9ImmAA:
 | 
| +; ASM: mov	r0, #2785280
 | 
| +
 | 
| +; IASM-LABEL: rotate9ImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0x9
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotate8ImmAA() {
 | 
| +  ; immediate = 0x00aa0000 = b 0000 0000 1010 1010 0000 0000 0000 0000
 | 
| +  ret i32 11141120
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotate8ImmAA:
 | 
| +; ASM: mov	r0, #11141120
 | 
| +
 | 
| +; IASM-LABEL: rotate8ImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0x8
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotate7ImmAA() {
 | 
| +  ; immediate = 0x02a80000 = b 0000 0010 1010 1000 0000 0000 0000 0000
 | 
| +  ret i32 44564480
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotate7ImmAA:
 | 
| +; ASM: 	mov	r0, #44564480
 | 
| +
 | 
| +; IASM-LABEL: rotate7ImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0x7
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotate6ImmAA() {
 | 
| +  ; immediate = 0x0aa00000 = b 0000 1010 1010 0000 0000 0000 0000 0000
 | 
| +  ret i32 178257920
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotate6ImmAA:
 | 
| +; ASM: 	mov	r0, #178257920
 | 
| +
 | 
| +; IASM-LABEL: rotate6ImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0x6
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotate5ImmAA() {
 | 
| +  ; immediate = 0x2a800000 = b 0010 1010 1000 0000 0000 0000 0000 0000
 | 
| +  ret i32 713031680
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotate5ImmAA:
 | 
| +; ASM: 	mov	r0, #713031680
 | 
| +
 | 
| +; IASM-LABEL: rotate5ImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0x5
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotate4ImmAA() {
 | 
| +  ; immediate = 0xaa000000 = b 1010 1010 0000 0000 0000 0000 0000 0000
 | 
| +  ret i32 2852126720
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotate4ImmAA:
 | 
| +; ASM: mov	r0, #2852126720
 | 
| +
 | 
| +; IASM-LABEL: rotate4ImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0x4
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotate3ImmAA() {
 | 
| +  ; immediate = 0xa8000002 = b 1010 1000 0000 0000 0000 0000 0000 0010
 | 
| +  ret i32 2818572290
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotate3ImmAA:
 | 
| +; ASM: mov	r0, #2818572290
 | 
| +
 | 
| +; IASM-LABEL: rotate3ImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0x3
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotate2ImmAA() {
 | 
| +  ; immediate = 0xa000000a = b 1010 0000 0000 0000 0000 0000 0000 1010
 | 
| +  ret i32 2684354570
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotate2ImmAA:
 | 
| +; ASM: 	mov	r0, #2684354570
 | 
| +
 | 
| +; IASM-LABEL: rotate2ImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0x2
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotate1ImmAA() {
 | 
| +  ; immediate = 0x8000002a = b 1000 1000 0000 0000 0000 0000 0010 1010
 | 
| +  ret i32 2147483690
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotate1ImmAA:
 | 
| +; ASM: mov	r0, #2147483690
 | 
| +
 | 
| +; IASM-LABEL: rotate1ImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0x1
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| +
 | 
| +define internal i32 @rotate0ImmAA() {
 | 
| +  ; immediate = 0x000000aa = b 0000 0000 0000 0000 0000 0000 1010 1010
 | 
| +  ret i32 170
 | 
| +}
 | 
| +
 | 
| +; ASM-LABEL: rotate0ImmAA:
 | 
| +; ASM: mov	r0, #170
 | 
| +
 | 
| +; IASM-LABEL: rotate0ImmAA:
 | 
| +; IASM:	.byte 0xaa
 | 
| +; IASM:	.byte 0x0
 | 
| +; IASM:	.byte 0xa0
 | 
| +; IASM:	.byte 0xe3
 | 
| 
 |