Chromium Code Reviews| Index: tests_lit/assembler/arm32/vadd.ll |
| diff --git a/tests_lit/assembler/arm32/vadd.ll b/tests_lit/assembler/arm32/vadd.ll |
| index a03510340f949c626f54b901b93bcc0a4abb83cc..de0f8a454b9548cab984dbdc4f9da3dfccba7c43 100644 |
| --- a/tests_lit/assembler/arm32/vadd.ll |
| +++ b/tests_lit/assembler/arm32/vadd.ll |
| @@ -1,24 +1,31 @@ |
| ; Show that we know how to translate vadd. |
| -; NOTE: We use -O2 to get rid of memory stores. |
| +; NOTE: Restricts S and D registers to ones that will better test S/D |
| +; register encodings. |
| ; REQUIRES: allow_dump |
| ; Compile using standalone assembler. |
| -; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 \ |
| +; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -Om1 \ |
| +; RUN: -use-registers s20,s22,d20,d22 \ |
| ; RUN: | FileCheck %s --check-prefix=ASM |
| ; Show bytes in assembled standalone code. |
| ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \ |
| -; RUN: --args -O2 | FileCheck %s --check-prefix=DIS |
| +; RUN: --args -Om1 \ |
| +; RUN: -use-registers s20,s22,d20,d22 \ |
| +; RUN: | FileCheck %s --check-prefix=DIS |
| ; Compile using integrated assembler. |
| -; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -O2 \ |
| +; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -Om1 \ |
| +; RUN: -use-registers s20,s22,d20,d22 \ |
| ; 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 |
| +; RUN: --args -Om1 \ |
| +; RUN: -use-registers s20,s22,d20,d22 \ |
| +; RUN: | FileCheck %s --check-prefix=DIS |
| define internal float @testVaddFloat(float %v1, float %v2) { |
| ; ASM-LABEL: testVaddFloat: |
| @@ -29,35 +36,98 @@ entry: |
| ; ASM-NEXT: .LtestVaddFloat$entry: |
| ; IASM-NEXT: .LtestVaddFloat$entry: |
| +; ASM-NEXT: vpush {s20} |
| +; DIS-NEXT: 0: ed2daa01 |
| +; IASM-NEXT: .byte 0x1 |
| +; IASM-NEXT: .byte 0xaa |
| +; IASM-NEXT: .byte 0x2d |
| +; IASM-NEXT: .byte 0xed |
| + |
| +; ASM-NEXT: vpush {s22} |
| +; DIS-NEXT: 4: ed2dba01 |
| +; IASM-NEXT: .byte 0x1 |
| +; IASM-NEXT: .byte 0xba |
| +; IASM-NEXT: .byte 0x2d |
| +; IASM-NEXT: .byte 0xed |
| + |
| +; ASM-NEXT: sub sp, sp, #12 |
| +; DIS-NEXT: 8: e24dd00c |
| +; IASM-NEXT: .byte 0xc |
| +; IASM-NEXT: .byte 0xd0 |
| +; IASM-NEXT: .byte 0x4d |
| +; IASM-NEXT: .byte 0xe2 |
| + |
| +; ASM-NEXT: vstr s0, [sp, #8] |
| +; ASM-NEXT: # [sp, #8] = def.pseudo |
|
Jim Stichnoth
2016/01/10 16:51:26
Trailing whitespace here and 3 other places.
Actu
Karl
2016/01/12 23:44:05
Acknowledged.
|
| +; DIS-NEXT: c: ed8d0a02 |
| +; IASM-NEXT: vstr s0, [sp, #8] |
| + |
| +; ASM-NEXT: vstr s1, [sp, #4] |
| +; ASM-NEXT: # [sp, #4] = def.pseudo |
| +; DIS-NEXT: 10: edcd0a01 |
| +; IASM-NEXT: vstr s1, [sp, #4] |
| + |
| %res = fadd float %v1, %v2 |
| -; ASM-NEXT: vadd.f32 s0, s0, s1 |
| -; DIS-NEXT: 0: ee300a20 |
| -; IASM-NEXT: .byte 0x20 |
| -; IASM-NEXT: .byte 0xa |
| -; IASM-NEXT: .byte 0x30 |
| -; IASM-NEXT: .byte 0xee |
| +; ASM-NEXT: vldr s20, [sp, #8] |
| +; DIS-NEXT: 14: ed9daa02 |
|
Jim Stichnoth
2016/01/10 16:51:26
untabify
Karl
2016/01/14 18:27:19
Done.
|
| +; IASM-NEXT: vldr s20, [sp, #8] |
| + |
| +; ASM-NEXT: vldr s22, [sp, #4] |
| +; DIS-NEXT: 18: ed9dba01 |
| +; IASM-NEXT: vldr s22, [sp, #4] |
| + |
| +; ASM-NEXT: vadd.f32 s20, s20, s22 |
| +; DIS-NEXT: 1c: ee3aaa0b |
| +; IASM-NEXT: .byte 0xb |
| +; IASM-NEXT: .byte 0xaa |
| +; IASM-NEXT: .byte 0x3a |
| +; IASM-NEXT: .byte 0xee |
| ret float %res |
| } |
| define internal double @testVaddDouble(double %v1, double %v2) { |
| ; ASM-LABEL: testVaddDouble: |
| -; DIS-LABEL: 00000010 <testVaddDouble>: |
| -; IASM-LABEL: testVaddDouble: |
| +; DIS-LABEL: 00000040 <testVaddDouble>: |
| +; IASM-LABEL: .LtestVaddDouble$entry: |
| entry: |
| ; ASM-NEXT: .LtestVaddDouble$entry: |
| -; IASM-NEXT: .LtestVaddDouble$entry: |
| + |
| +; ASM-NEXT: sub sp, sp, #24 |
| +; DIS-NEXT: 40: e24dd018 |
| +; IASM-NEXT: .byte 0x18 |
| +; IASM-NEXT: .byte 0xd0 |
| +; IASM-NEXT: .byte 0x4d |
| +; IASM-NEXT: .byte 0xe2 |
| + |
| +; ASM-NEXT: vstr d0, [sp, #16] |
| +; ASM-NEXT: # [sp, #16] = def.pseudo |
| +; DIS-NEXT: 44: ed8d0b04 |
| +; IASM-NEXT: vstr d0, [sp, #16] |
| + |
| +; ASM-NEXT: vstr d1, [sp, #8] |
| +; ASM-NEXT: # [sp, #8] = def.pseudo |
| +; DIS-NEXT: 48: ed8d1b02 |
| +; IASM-NEXT: vstr d1, [sp, #8] |
| %res = fadd double %v1, %v2 |
| -; ASM-NEXT: vadd.f64 d0, d0, d1 |
| -; DIS-NEXT: 10: ee300b01 |
| -; IASM-NEXT: .byte 0x1 |
| -; IASM-NEXT: .byte 0xb |
| -; IASM-NEXT: .byte 0x30 |
| -; IASM-NEXT: .byte 0xee |
| +; ASM-NEXT: vldr d22, [sp, #16] |
| +; DIS-NEXT: 4c: eddd6b04 |
| +; IASM-NEXT: vldr d22, [sp, #16] |
| + |
| +; ASM-NEXT: vldr d20, [sp, #8] |
| +; DIS-NEXT: 50: eddd4b02 |
| +; IASM-NEXT: vldr d20, [sp, #8] |
| + |
| +; ASM-NEXT: vadd.f64 d22, d22, d20 |
| +; DIS-NEXT: 54: ee766ba4 |
| +; IASM-NEXT: .byte 0xa4 |
| +; IASM-NEXT: .byte 0x6b |
| +; IASM-NEXT: .byte 0x76 |
| +; IASM-NEXT: .byte 0xee |
| ret double %res |
| } |