| OLD | NEW |
| 1 ; This checks support for insertelement and extractelement. | 1 ; This checks support for insertelement and extractelement. |
| 2 | 2 |
| 3 ; RUN: %llvm2ice -O2 --verbose none %s \ | 3 ; RUN: %llvm2ice -O2 --verbose none %s \ |
| 4 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ | 4 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
| 5 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s | 5 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s |
| 6 ; RUN: %llvm2ice -Om1 --verbose none %s \ | 6 ; RUN: %llvm2ice -Om1 --verbose none %s \ |
| 7 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ | 7 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
| 8 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s | 8 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s |
| 9 ; RUN: %llvm2ice -O2 -mattr=sse4.1 --verbose none %s \ | 9 ; RUN: %llvm2ice -O2 -mattr=sse4.1 --verbose none %s \ |
| 10 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ | 10 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \ |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 | 30 |
| 31 ; SSE41-LABEL: insertelement_v4f32_0: | 31 ; SSE41-LABEL: insertelement_v4f32_0: |
| 32 ; SSE41: insertps {{.*}}, {{.*}}, 0 | 32 ; SSE41: insertps {{.*}}, {{.*}}, 0 |
| 33 } | 33 } |
| 34 | 34 |
| 35 define <4 x i32> @insertelement_v4i32_0(<4 x i32> %vec, i32 %elt) { | 35 define <4 x i32> @insertelement_v4i32_0(<4 x i32> %vec, i32 %elt) { |
| 36 entry: | 36 entry: |
| 37 %res = insertelement <4 x i32> %vec, i32 %elt, i32 0 | 37 %res = insertelement <4 x i32> %vec, i32 %elt, i32 0 |
| 38 ret <4 x i32> %res | 38 ret <4 x i32> %res |
| 39 ; CHECK-LABEL: insertelement_v4i32_0: | 39 ; CHECK-LABEL: insertelement_v4i32_0: |
| 40 ; CHECK: movd xmm{{.*}}, |
| 40 ; CHECK: movss | 41 ; CHECK: movss |
| 41 | 42 |
| 42 ; SSE41-LABEL: insertelement_v4i32_0: | 43 ; SSE41-LABEL: insertelement_v4i32_0: |
| 43 ; SSE41: pinsrd {{.*}}, {{.*}}, 0 | 44 ; SSE41: pinsrd {{.*}}, {{.*}}, 0 |
| 44 } | 45 } |
| 45 | 46 |
| 46 | 47 |
| 47 define <4 x float> @insertelement_v4f32_1(<4 x float> %vec, float %elt) { | 48 define <4 x float> @insertelement_v4f32_1(<4 x float> %vec, float %elt) { |
| 48 entry: | 49 entry: |
| 49 %res = insertelement <4 x float> %vec, float %elt, i32 1 | 50 %res = insertelement <4 x float> %vec, float %elt, i32 1 |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 ; SSE41-LABEL: extractelement_v4f32: | 158 ; SSE41-LABEL: extractelement_v4f32: |
| 158 ; SSE41: pshufd | 159 ; SSE41: pshufd |
| 159 } | 160 } |
| 160 | 161 |
| 161 define i32 @extractelement_v4i32(<4 x i32> %vec) { | 162 define i32 @extractelement_v4i32(<4 x i32> %vec) { |
| 162 entry: | 163 entry: |
| 163 %res = extractelement <4 x i32> %vec, i32 1 | 164 %res = extractelement <4 x i32> %vec, i32 1 |
| 164 ret i32 %res | 165 ret i32 %res |
| 165 ; CHECK-LABEL: extractelement_v4i32: | 166 ; CHECK-LABEL: extractelement_v4i32: |
| 166 ; CHECK: pshufd | 167 ; CHECK: pshufd |
| 168 ; CHECK: movd {{.*}}, xmm |
| 167 | 169 |
| 168 ; SSE41-LABEL: extractelement_v4i32: | 170 ; SSE41-LABEL: extractelement_v4i32: |
| 169 ; SSE41: pextrd | 171 ; SSE41: pextrd |
| 170 } | 172 } |
| 171 | 173 |
| 172 define i32 @extractelement_v8i16(<8 x i16> %vec) { | 174 define i32 @extractelement_v8i16(<8 x i16> %vec) { |
| 173 entry: | 175 entry: |
| 174 %res = extractelement <8 x i16> %vec, i32 1 | 176 %res = extractelement <8 x i16> %vec, i32 1 |
| 175 %res.ext = zext i16 %res to i32 | 177 %res.ext = zext i16 %res to i32 |
| 176 ret i32 %res.ext | 178 ret i32 %res.ext |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 ; CHECK: movups | 230 ; CHECK: movups |
| 229 ; CHECK: lea | 231 ; CHECK: lea |
| 230 ; CHECK: mov | 232 ; CHECK: mov |
| 231 | 233 |
| 232 ; SSE41-LABEL: extractelement_v16i1: | 234 ; SSE41-LABEL: extractelement_v16i1: |
| 233 ; SSE41: pextrb | 235 ; SSE41: pextrb |
| 234 } | 236 } |
| 235 | 237 |
| 236 ; ERRORS-NOT: ICE translation error | 238 ; ERRORS-NOT: ICE translation error |
| 237 ; DUMP-NOT: SZ | 239 ; DUMP-NOT: SZ |
| OLD | NEW |