OLD | NEW |
1 ; This test checks that when SSE instructions access memory and require full | 1 ; This test checks that when SSE instructions access memory and require full |
2 ; alignment, memory operands are limited to properly aligned stack operands. | 2 ; alignment, memory operands are limited to properly aligned stack operands. |
3 ; This would only happen when we fuse a load instruction with another | 3 ; This would only happen when we fuse a load instruction with another |
4 ; instruction, which currently only happens with non-scalarized Arithmetic | 4 ; instruction, which currently only happens with non-scalarized Arithmetic |
5 ; instructions. | 5 ; instructions. |
6 | 6 |
7 ; RUN: %p2i -i %s --filetype=obj --disassemble --args -O2 | FileCheck %s | 7 ; RUN: %p2i -i %s --filetype=obj --disassemble --args -O2 | FileCheck %s |
8 ; RUN: %p2i -i %s --filetype=obj --disassemble --args -Om1 | FileCheck %s | 8 ; RUN: %p2i -i %s --filetype=obj --disassemble --args -Om1 | FileCheck %s |
9 | 9 |
10 ; RUN: %if --need=target_MIPS32 --need=allow_dump \ | 10 ; RUN: %if --need=target_MIPS32 --need=allow_dump \ |
11 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target mips32\ | 11 ; RUN: --command %p2i --filetype=asm --assemble --disassemble --target mips32\ |
12 ; RUN: -i %s --args -O2 --skip-unimplemented \ | 12 ; RUN: -i %s --args -O2 \ |
13 ; RUN: | %if --need=target_MIPS32 --need=allow_dump \ | 13 ; RUN: | %if --need=target_MIPS32 --need=allow_dump \ |
14 ; RUN: --command FileCheck --check-prefix MIPS32 %s | 14 ; RUN: --command FileCheck --check-prefix MIPS32 %s |
15 | 15 |
16 define internal <4 x i32> @test_add(i32 %addr_i, <4 x i32> %addend) { | 16 define internal <4 x i32> @test_add(i32 %addr_i, <4 x i32> %addend) { |
17 entry: | 17 entry: |
18 %addr = inttoptr i32 %addr_i to <4 x i32>* | 18 %addr = inttoptr i32 %addr_i to <4 x i32>* |
19 %loaded = load <4 x i32>, <4 x i32>* %addr, align 4 | 19 %loaded = load <4 x i32>, <4 x i32>* %addr, align 4 |
20 %result = add <4 x i32> %addend, %loaded | 20 %result = add <4 x i32> %addend, %loaded |
21 ret <4 x i32> %result | 21 ret <4 x i32> %result |
22 } | 22 } |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 } | 124 } |
125 ; CHECK-LABEL: test_fsub | 125 ; CHECK-LABEL: test_fsub |
126 ; CHECK-NOT: subps xmm{{.}},XMMWORD PTR [e{{ax|cx|dx|di|si|bx|bp}} | 126 ; CHECK-NOT: subps xmm{{.}},XMMWORD PTR [e{{ax|cx|dx|di|si|bx|bp}} |
127 ; CHECK: subps xmm{{.}}, | 127 ; CHECK: subps xmm{{.}}, |
128 | 128 |
129 ; MIPS32-LABEL: test_fsub | 129 ; MIPS32-LABEL: test_fsub |
130 ; MIPS32: sub.s | 130 ; MIPS32: sub.s |
131 ; MIPS32: sub.s | 131 ; MIPS32: sub.s |
132 ; MIPS32: sub.s | 132 ; MIPS32: sub.s |
133 ; MIPS32: sub.s | 133 ; MIPS32: sub.s |
OLD | NEW |