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..02f94eefada57fd71b635e8c8dec7b21e096120e 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: -reg-use 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: -reg-use 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: -reg-use 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: -reg-use s20,s22,d20,d22 \ |
+; RUN: | FileCheck %s --check-prefix=DIS |
define internal float @testVaddFloat(float %v1, float %v2) { |
; ASM-LABEL: testVaddFloat: |
@@ -26,38 +33,26 @@ define internal float @testVaddFloat(float %v1, float %v2) { |
; IASM-LABEL: testVaddFloat: |
entry: |
-; ASM-NEXT: .LtestVaddFloat$entry: |
-; IASM-NEXT: .LtestVaddFloat$entry: |
- |
%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: vadd.f32 s20, s20, s22 |
+; DIS: 1c: ee3aaa0b |
+; IASM-NOT: vadd |
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: |
- |
%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: vadd.f64 d22, d22, d20 |
+; DIS: 54: ee766ba4 |
+; IASM-NOT: vadd |
ret double %res |
} |