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 |
index df939f9a5de4d66c6ef2811214f1d76042783487..d7c97e3c8a2c358f4a1448975baff7b608a120f8 100644 |
--- a/tests_lit/assembler/arm32/mov-imm.ll |
+++ b/tests_lit/assembler/arm32/mov-imm.ll |
@@ -2,22 +2,37 @@ |
; REQUIRES: allow_dump |
-; RUN: %p2i --filetype=asm -i %s --target=arm32 \ |
+; Compile using standalone assembler. |
+; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 \ |
; RUN: | FileCheck %s --check-prefix=ASM |
-; RUN: %p2i --filetype=iasm -i %s --target=arm32 \ |
+ |
+; Show bytes in assembled standalone code. |
+; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \ |
+; RUN: --args -O2 | FileCheck %s --check-prefix=DIS |
+ |
+; Compile using integrated assembler. |
+; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -O2 \ |
; RUN: | FileCheck %s --check-prefix=IASM |
+; Show bytes in assembled integrated code. |
+; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \ |
+; RUN: --args -O2 | FileCheck %s --check-prefix=DIS |
+ |
define internal i32 @Imm1() { |
ret i32 1 |
} |
; ASM-LABEL: Imm1: |
-; ASM: mov r0, #1 |
+; ASM: mov r0, #1 |
+ |
+; DIS-LABEL:00000000 <Imm1>: |
+; DIS-NEXT: 0: e3a00001 |
+ |
; IASM-LABEL: Imm1: |
-; IASM: .byte 0x1 |
-; IASM: .byte 0x0 |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; IASM: .byte 0x1 |
+; IASM: .byte 0x0 |
+; IASM: .byte 0xa0 |
+; IASM: .byte 0xe3 |
define internal i32 @rotateFImmAA() { |
@@ -26,13 +41,16 @@ define internal i32 @rotateFImmAA() { |
} |
; ASM-LABEL: rotateFImmAA: |
-; ASM: mov r0, #680 |
+; ASM: mov r0, #680 |
+ |
+; DIS-LABEL:00000010 <rotateFImmAA>: |
+; DIS-NEXT: 10: e3a00faa |
; IASM-LABEL: rotateFImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0xf |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -40,13 +58,16 @@ define internal i32 @rotateEImmAA() { |
} |
; ASM-LABEL: rotateEImmAA: |
-; ASM: mov r0, #2720 |
+; ASM: mov r0, #2720 |
+ |
+; DIS-LABEL:00000020 <rotateEImmAA>: |
+; DIS-NEXT: 20: e3a00eaa |
; IASM-LABEL: rotateEImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0xe |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -54,13 +75,16 @@ define internal i32 @rotateDImmAA() { |
} |
; ASM-LABEL: rotateDImmAA: |
-; ASM: mov r0, #10880 |
+; ASM: mov r0, #10880 |
+ |
+; DIS-LABEL:00000030 <rotateDImmAA>: |
+; DIS-NEXT: 30: e3a00daa |
; IASM-LABEL: rotateDImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0xd |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -68,13 +92,16 @@ define internal i32 @rotateCImmAA() { |
} |
; ASM-LABEL: rotateCImmAA: |
-; ASM: mov r0, #43520 |
+; ASM: mov r0, #43520 |
+ |
+; DIS-LABEL:00000040 <rotateCImmAA>: |
+; DIS-NEXT: 40: e3a00caa |
; IASM-LABEL: rotateCImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0xc |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -82,13 +109,16 @@ define internal i32 @rotateBImmAA() { |
} |
; ASM-LABEL: rotateBImmAA: |
-; ASM: mov r0, #174080 |
+; ASM: mov r0, #174080 |
+ |
+; DIS-LABEL:00000050 <rotateBImmAA>: |
+; DIS-NEXT: 50: e3a00baa |
; IASM-LABEL: rotateBImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0xb |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -96,13 +126,16 @@ define internal i32 @rotateAImmAA() { |
} |
; ASM-LABEL: rotateAImmAA: |
-; ASM: mov r0, #696320 |
+; ASM: mov r0, #696320 |
+ |
+; DIS-LABEL:00000060 <rotateAImmAA>: |
+; DIS-NEXT: 60: e3a00aaa |
; IASM-LABEL: rotateAImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0xa |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -110,13 +143,16 @@ define internal i32 @rotate9ImmAA() { |
} |
; ASM-LABEL: rotate9ImmAA: |
-; ASM: mov r0, #2785280 |
+; ASM: mov r0, #2785280 |
+ |
+; DIS-LABEL:00000070 <rotate9ImmAA>: |
+; DIS-NEXT: 70: e3a009aa |
; IASM-LABEL: rotate9ImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0x9 |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -124,13 +160,16 @@ define internal i32 @rotate8ImmAA() { |
} |
; ASM-LABEL: rotate8ImmAA: |
-; ASM: mov r0, #11141120 |
+; ASM: mov r0, #11141120 |
+ |
+; DIS-LABEL:00000080 <rotate8ImmAA>: |
+; DIS-NEXT: 80: e3a008aa |
; IASM-LABEL: rotate8ImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0x8 |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -138,13 +177,16 @@ define internal i32 @rotate7ImmAA() { |
} |
; ASM-LABEL: rotate7ImmAA: |
-; ASM: mov r0, #44564480 |
+; ASM: mov r0, #44564480 |
+ |
+; DIS-LABEL:00000090 <rotate7ImmAA>: |
+; DIS-NEXT: 90: e3a007aa |
; IASM-LABEL: rotate7ImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0x7 |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -152,13 +194,16 @@ define internal i32 @rotate6ImmAA() { |
} |
; ASM-LABEL: rotate6ImmAA: |
-; ASM: mov r0, #178257920 |
+; ASM: mov r0, #178257920 |
+ |
+; DIS-LABEL:000000a0 <rotate6ImmAA>: |
+; DIS-NEXT: a0: e3a006aa |
; IASM-LABEL: rotate6ImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0x6 |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -166,13 +211,16 @@ define internal i32 @rotate5ImmAA() { |
} |
; ASM-LABEL: rotate5ImmAA: |
-; ASM: mov r0, #713031680 |
+; ASM: mov r0, #713031680 |
+ |
+; DIS-LABEL:000000b0 <rotate5ImmAA>: |
+; DIS-NEXT: b0: e3a005aa |
; IASM-LABEL: rotate5ImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0x5 |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -180,13 +228,16 @@ define internal i32 @rotate4ImmAA() { |
} |
; ASM-LABEL: rotate4ImmAA: |
-; ASM: mov r0, #2852126720 |
+; ASM: mov r0, #2852126720 |
+ |
+; DIS-LABEL:000000c0 <rotate4ImmAA>: |
+; DIS-NEXT: c0: e3a004aa |
; IASM-LABEL: rotate4ImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0x4 |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -194,13 +245,16 @@ define internal i32 @rotate3ImmAA() { |
} |
; ASM-LABEL: rotate3ImmAA: |
-; ASM: mov r0, #2818572290 |
+; ASM: mov r0, #2818572290 |
+ |
+; DIS-LABEL:000000d0 <rotate3ImmAA>: |
+; DIS-NEXT: d0: e3a003aa |
; IASM-LABEL: rotate3ImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0x3 |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -208,13 +262,16 @@ define internal i32 @rotate2ImmAA() { |
} |
; ASM-LABEL: rotate2ImmAA: |
-; ASM: mov r0, #2684354570 |
+; ASM: mov r0, #2684354570 |
+ |
+; DIS-LABEL:000000e0 <rotate2ImmAA>: |
+; DIS-NEXT: e0: e3a002aa |
; IASM-LABEL: rotate2ImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0x2 |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -222,13 +279,16 @@ define internal i32 @rotate1ImmAA() { |
} |
; ASM-LABEL: rotate1ImmAA: |
-; ASM: mov r0, #2147483690 |
+; ASM: mov r0, #2147483690 |
+ |
+; DIS-LABEL:000000f0 <rotate1ImmAA>: |
+; DIS-NEXT: f0: e3a001aa |
; IASM-LABEL: rotate1ImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0x1 |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; 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 |
@@ -236,10 +296,13 @@ define internal i32 @rotate0ImmAA() { |
} |
; ASM-LABEL: rotate0ImmAA: |
-; ASM: mov r0, #170 |
+; ASM: mov r0, #170 |
+ |
+; DIS-LABEL:00000100 <rotate0ImmAA>: |
+; DIS-NEXT: 100: e3a000aa |
; IASM-LABEL: rotate0ImmAA: |
-; IASM: .byte 0xaa |
-; IASM: .byte 0x0 |
-; IASM: .byte 0xa0 |
-; IASM: .byte 0xe3 |
+; IASM: .byte 0xaa |
+; IASM: .byte 0x0 |
+; IASM: .byte 0xa0 |
+; IASM: .byte 0xe3 |