Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 ; Show that we know how to translate vadd. | 1 ; Show that we know how to translate vadd. |
| 2 | 2 |
| 3 ; NOTE: We use -O2 to get rid of memory stores. | 3 ; NOTE: Restricts S and D registers to ones that will better test S/D |
| 4 ; register encodings. | |
| 4 | 5 |
| 5 ; REQUIRES: allow_dump | 6 ; REQUIRES: allow_dump |
| 6 | 7 |
| 7 ; Compile using standalone assembler. | 8 ; Compile using standalone assembler. |
| 8 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 \ | 9 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -Om1 \ |
| 10 ; RUN: -use-registers s20,s22,d20,d22 \ | |
| 9 ; RUN: | FileCheck %s --check-prefix=ASM | 11 ; RUN: | FileCheck %s --check-prefix=ASM |
| 10 | 12 |
| 11 ; Show bytes in assembled standalone code. | 13 ; Show bytes in assembled standalone code. |
| 12 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \ | 14 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \ |
| 13 ; RUN: --args -O2 | FileCheck %s --check-prefix=DIS | 15 ; RUN: --args -Om1 \ |
| 16 ; RUN: -use-registers s20,s22,d20,d22 \ | |
| 17 ; RUN: | FileCheck %s --check-prefix=DIS | |
| 14 | 18 |
| 15 ; Compile using integrated assembler. | 19 ; Compile using integrated assembler. |
| 16 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -O2 \ | 20 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -Om1 \ |
| 21 ; RUN: -use-registers s20,s22,d20,d22 \ | |
| 17 ; RUN: | FileCheck %s --check-prefix=IASM | 22 ; RUN: | FileCheck %s --check-prefix=IASM |
| 18 | 23 |
| 19 ; Show bytes in assembled integrated code. | 24 ; Show bytes in assembled integrated code. |
| 20 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \ | 25 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \ |
| 21 ; RUN: --args -O2 | FileCheck %s --check-prefix=DIS | 26 ; RUN: --args -Om1 \ |
| 27 ; RUN: -use-registers s20,s22,d20,d22 \ | |
| 28 ; RUN: | FileCheck %s --check-prefix=DIS | |
| 22 | 29 |
| 23 define internal float @testVaddFloat(float %v1, float %v2) { | 30 define internal float @testVaddFloat(float %v1, float %v2) { |
| 24 ; ASM-LABEL: testVaddFloat: | 31 ; ASM-LABEL: testVaddFloat: |
| 25 ; DIS-LABEL: 00000000 <testVaddFloat>: | 32 ; DIS-LABEL: 00000000 <testVaddFloat>: |
| 26 ; IASM-LABEL: testVaddFloat: | 33 ; IASM-LABEL: testVaddFloat: |
| 27 | 34 |
| 28 entry: | 35 entry: |
| 29 ; ASM-NEXT: .LtestVaddFloat$entry: | 36 ; ASM-NEXT: .LtestVaddFloat$entry: |
| 30 ; IASM-NEXT: .LtestVaddFloat$entry: | 37 ; IASM-NEXT: .LtestVaddFloat$entry: |
| 31 | 38 |
| 39 ; ASM-NEXT: vpush {s20} | |
| 40 ; DIS-NEXT: 0: ed2daa01 | |
| 41 ; IASM-NEXT: .byte 0x1 | |
| 42 ; IASM-NEXT: .byte 0xaa | |
| 43 ; IASM-NEXT: .byte 0x2d | |
| 44 ; IASM-NEXT: .byte 0xed | |
| 45 | |
| 46 ; ASM-NEXT: vpush {s22} | |
| 47 ; DIS-NEXT: 4: ed2dba01 | |
| 48 ; IASM-NEXT: .byte 0x1 | |
| 49 ; IASM-NEXT: .byte 0xba | |
| 50 ; IASM-NEXT: .byte 0x2d | |
| 51 ; IASM-NEXT: .byte 0xed | |
| 52 | |
| 53 ; ASM-NEXT: sub sp, sp, #12 | |
| 54 ; DIS-NEXT: 8: e24dd00c | |
| 55 ; IASM-NEXT: .byte 0xc | |
| 56 ; IASM-NEXT: .byte 0xd0 | |
| 57 ; IASM-NEXT: .byte 0x4d | |
| 58 ; IASM-NEXT: .byte 0xe2 | |
| 59 | |
| 60 ; ASM-NEXT: vstr s0, [sp, #8] | |
| 61 ; 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.
| |
| 62 ; DIS-NEXT: c: ed8d0a02 | |
| 63 ; IASM-NEXT: vstr s0, [sp, #8] | |
| 64 | |
| 65 ; ASM-NEXT: vstr s1, [sp, #4] | |
| 66 ; ASM-NEXT: # [sp, #4] = def.pseudo | |
| 67 ; DIS-NEXT: 10: edcd0a01 | |
| 68 ; IASM-NEXT: vstr s1, [sp, #4] | |
| 69 | |
| 32 %res = fadd float %v1, %v2 | 70 %res = fadd float %v1, %v2 |
| 33 | 71 |
| 34 ; ASM-NEXT: vadd.f32 s0, s0, s1 | 72 ; ASM-NEXT: vldr s20, [sp, #8] |
| 35 ; DIS-NEXT: 0: ee300a20 | 73 ; DIS-NEXT: 14:» ed9daa02 |
|
Jim Stichnoth
2016/01/10 16:51:26
untabify
Karl
2016/01/14 18:27:19
Done.
| |
| 36 ; IASM-NEXT: .byte 0x20 | 74 ; IASM-NEXT: » vldr» s20, [sp, #8] |
| 37 ; IASM-NEXT: .byte 0xa | 75 |
| 38 ; IASM-NEXT: .byte 0x30 | 76 ; ASM-NEXT: vldr s22, [sp, #4] |
| 39 ; IASM-NEXT: .byte 0xee | 77 ; DIS-NEXT: 18:» ed9dba01 |
| 78 ; IASM-NEXT: » vldr» s22, [sp, #4] | |
| 79 | |
| 80 ; ASM-NEXT: vadd.f32 s20, s20, s22 | |
| 81 ; DIS-NEXT: 1c:» ee3aaa0b | |
| 82 ; IASM-NEXT: » .byte 0xb | |
| 83 ; IASM-NEXT: » .byte 0xaa | |
| 84 ; IASM-NEXT: » .byte 0x3a | |
| 85 ; IASM-NEXT: » .byte 0xee | |
| 40 | 86 |
| 41 ret float %res | 87 ret float %res |
| 42 } | 88 } |
| 43 | 89 |
| 44 define internal double @testVaddDouble(double %v1, double %v2) { | 90 define internal double @testVaddDouble(double %v1, double %v2) { |
| 45 ; ASM-LABEL: testVaddDouble: | 91 ; ASM-LABEL: testVaddDouble: |
| 46 ; DIS-LABEL: 00000010 <testVaddDouble>: | 92 ; DIS-LABEL: 00000040 <testVaddDouble>: |
| 47 ; IASM-LABEL: testVaddDouble: | 93 ; IASM-LABEL: .LtestVaddDouble$entry: |
| 48 | 94 |
| 49 entry: | 95 entry: |
| 50 ; ASM-NEXT: .LtestVaddDouble$entry: | 96 ; ASM-NEXT: .LtestVaddDouble$entry: |
| 51 ; IASM-NEXT: .LtestVaddDouble$entry: | 97 |
| 98 ; ASM-NEXT: sub sp, sp, #24 | |
| 99 ; DIS-NEXT: 40:» e24dd018 | |
| 100 ; IASM-NEXT: » .byte 0x18 | |
| 101 ; IASM-NEXT: » .byte 0xd0 | |
| 102 ; IASM-NEXT: » .byte 0x4d | |
| 103 ; IASM-NEXT: » .byte 0xe2 | |
| 104 | |
| 105 ; ASM-NEXT: vstr d0, [sp, #16] | |
| 106 ; ASM-NEXT: # [sp, #16] = def.pseudo | |
| 107 ; DIS-NEXT: 44:» ed8d0b04 | |
| 108 ; IASM-NEXT: » vstr» d0, [sp, #16] | |
| 109 | |
| 110 ; ASM-NEXT: vstr d1, [sp, #8] | |
| 111 ; ASM-NEXT: # [sp, #8] = def.pseudo | |
| 112 ; DIS-NEXT: 48:» ed8d1b02 | |
| 113 ; IASM-NEXT: » vstr» d1, [sp, #8] | |
| 52 | 114 |
| 53 %res = fadd double %v1, %v2 | 115 %res = fadd double %v1, %v2 |
| 54 | 116 |
| 55 ; ASM-NEXT: vadd.f64 d0, d0, d1 | 117 ; ASM-NEXT: vldr d22, [sp, #16] |
| 56 ; DIS-NEXT: 10: ee300b01 | 118 ; DIS-NEXT: 4c:» eddd6b04 |
| 57 ; IASM-NEXT: .byte 0x1 | 119 ; IASM-NEXT: » vldr» d22, [sp, #16] |
| 58 ; IASM-NEXT: .byte 0xb | 120 |
| 59 ; IASM-NEXT: .byte 0x30 | 121 ; ASM-NEXT: vldr d20, [sp, #8] |
| 60 ; IASM-NEXT: .byte 0xee | 122 ; DIS-NEXT: 50:» eddd4b02 |
| 123 ; IASM-NEXT: » vldr» d20, [sp, #8] | |
| 124 | |
| 125 ; ASM-NEXT: vadd.f64 d22, d22, d20 | |
| 126 ; DIS-NEXT: 54:» ee766ba4 | |
| 127 ; IASM-NEXT: » .byte 0xa4 | |
| 128 ; IASM-NEXT: » .byte 0x6b | |
| 129 ; IASM-NEXT: » .byte 0x76 | |
| 130 ; IASM-NEXT: » .byte 0xee | |
| 61 | 131 |
| 62 ret double %res | 132 ret double %res |
| 63 } | 133 } |
| OLD | NEW |