OLD | NEW |
1 ; This file checks that Subzero generates code in accordance with the | 1 ; This file checks that Subzero generates code in accordance with the |
2 ; calling convention for vectors. | 2 ; calling convention for vectors. |
3 | 3 |
4 ; NOTE: CHECK / OPTM1 lines containing the following strings may be | 4 ; NOTE: CHECK / OPTM1 lines containing the following strings may be |
5 ; subject to change: | 5 ; subject to change: |
6 ; | 6 ; |
7 ; * movups: The movups instruction may be changed to movaps when the | 7 ; * movups: The movups instruction may be changed to movaps when the |
8 ; load / store operation is 16 byte aligned. | 8 ; load / store operation is 16 byte aligned. |
9 ; | 9 ; |
10 ; * stack offsets: These may need to be changed if stack alignment | 10 ; * stack offsets: These may need to be changed if stack alignment |
11 ; support is implemented. | 11 ; support is implemented. |
12 ; | 12 ; |
13 ; * stack adjustment operations | 13 ; * stack adjustment operations |
14 | 14 |
15 ; RUN: %llvm2ice -O2 --verbose none %s | FileCheck %s | 15 ; RUN: %llvm2ice -O2 --verbose none %s | FileCheck %s |
16 ; RUN: %llvm2ice -Om1 --verbose none %s | FileCheck --check-prefix=OPTM1 %s | 16 ; RUN: %llvm2ice -Om1 --verbose none %s | FileCheck --check-prefix=OPTM1 %s |
| 17 ; RUN: %llvm2ice -O2 --verbose none %s | llvm-mc -x86-asm-syntax=intel |
| 18 ; RUN: %llvm2ice -Om1 --verbose none %s | llvm-mc -x86-asm-syntax=intel |
17 ; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s | 19 ; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s |
18 ; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s | 20 ; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s |
19 ; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ | 21 ; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ |
20 ; RUN: | FileCheck --check-prefix=DUMP %s | 22 ; RUN: | FileCheck --check-prefix=DUMP %s |
21 | 23 |
22 ; The first five functions test that vectors are moved from their | 24 ; The first five functions test that vectors are moved from their |
23 ; correct argument location to xmm0. | 25 ; correct argument location to xmm0. |
24 | 26 |
25 define <4 x float> @test_returning_arg0(<4 x float> %arg0, <4 x float> %arg1, <4
x float> %arg2, <4 x float> %arg3, <4 x float> %arg4, <4 x float> %arg5) { | 27 define <4 x float> @test_returning_arg0(<4 x float> %arg0, <4 x float> %arg1, <4
x float> %arg2, <4 x float> %arg3, <4 x float> %arg4, <4 x float> %arg5) { |
26 entry: | 28 entry: |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 ; OPTM1-LABEL: test_receiving_vectors: | 219 ; OPTM1-LABEL: test_receiving_vectors: |
218 ; OPTM1: call VectorReturn | 220 ; OPTM1: call VectorReturn |
219 ; OPTM1: movups [[LOC:.*]], xmm0 | 221 ; OPTM1: movups [[LOC:.*]], xmm0 |
220 ; OPTM1: movups xmm0, [[LOC]] | 222 ; OPTM1: movups xmm0, [[LOC]] |
221 ; OPTM1: call VectorReturn | 223 ; OPTM1: call VectorReturn |
222 ; OPTM1: ret | 224 ; OPTM1: ret |
223 } | 225 } |
224 | 226 |
225 ; ERRORS-NOT: ICE translation error | 227 ; ERRORS-NOT: ICE translation error |
226 ; DUMP-NOT: SZ | 228 ; DUMP-NOT: SZ |
OLD | NEW |