Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
test/CodeGen/X86/bool-vector.ll
Show First 20 Lines • Show All 89 Lines • ▼ Show 20 Lines | |||||
; X32-NEXT: movzbl {{[0-9]+}}(%esp), %edx | ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %edx | ||||
; X32-NEXT: andl $1, %edx | ; X32-NEXT: andl $1, %edx | ||||
; X32-NEXT: movzbl {{[0-9]+}}(%esp), %esi | ; X32-NEXT: movzbl {{[0-9]+}}(%esp), %esi | ||||
; X32-NEXT: andl $1, %esi | ; X32-NEXT: andl $1, %esi | ||||
; X32-NEXT: leal (%eax,%ecx,2), %eax | ; X32-NEXT: leal (%eax,%ecx,2), %eax | ||||
; X32-NEXT: leal (%eax,%edx,4), %eax | ; X32-NEXT: leal (%eax,%edx,4), %eax | ||||
; X32-NEXT: leal (%eax,%esi,8), %eax | ; X32-NEXT: leal (%eax,%esi,8), %eax | ||||
; X32-NEXT: popl %esi | ; X32-NEXT: popl %esi | ||||
; X32-NEXT: .Lcfi2: | |||||
; X32-NEXT: .cfi_def_cfa_offset 4 | |||||
; X32-NEXT: retl | ; X32-NEXT: retl | ||||
; | ; | ||||
; X32-SSE2-LABEL: PR15215_good: | ; X32-SSE2-LABEL: PR15215_good: | ||||
; X32-SSE2: # BB#0: # %entry | ; X32-SSE2: # BB#0: # %entry | ||||
; X32-SSE2-NEXT: pushl %esi | ; X32-SSE2-NEXT: pushl %esi | ||||
; X32-SSE2-NEXT: .Lcfi0: | ; X32-SSE2-NEXT: .Lcfi0: | ||||
; X32-SSE2-NEXT: .cfi_def_cfa_offset 8 | ; X32-SSE2-NEXT: .cfi_def_cfa_offset 8 | ||||
; X32-SSE2-NEXT: .Lcfi1: | ; X32-SSE2-NEXT: .Lcfi1: | ||||
; X32-SSE2-NEXT: .cfi_offset %esi, -8 | ; X32-SSE2-NEXT: .cfi_offset %esi, -8 | ||||
; X32-SSE2-NEXT: movd %xmm0, %eax | ; X32-SSE2-NEXT: movd %xmm0, %eax | ||||
; X32-SSE2-NEXT: andl $1, %eax | ; X32-SSE2-NEXT: andl $1, %eax | ||||
; X32-SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm0[1,1,2,3] | ; X32-SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm0[1,1,2,3] | ||||
; X32-SSE2-NEXT: movd %xmm1, %ecx | ; X32-SSE2-NEXT: movd %xmm1, %ecx | ||||
; X32-SSE2-NEXT: andl $1, %ecx | ; X32-SSE2-NEXT: andl $1, %ecx | ||||
; X32-SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm0[2,3,0,1] | ; X32-SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm0[2,3,0,1] | ||||
; X32-SSE2-NEXT: movd %xmm1, %edx | ; X32-SSE2-NEXT: movd %xmm1, %edx | ||||
; X32-SSE2-NEXT: andl $1, %edx | ; X32-SSE2-NEXT: andl $1, %edx | ||||
; X32-SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[3,1,2,3] | ; X32-SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[3,1,2,3] | ||||
; X32-SSE2-NEXT: movd %xmm0, %esi | ; X32-SSE2-NEXT: movd %xmm0, %esi | ||||
; X32-SSE2-NEXT: andl $1, %esi | ; X32-SSE2-NEXT: andl $1, %esi | ||||
; X32-SSE2-NEXT: leal (%eax,%ecx,2), %eax | ; X32-SSE2-NEXT: leal (%eax,%ecx,2), %eax | ||||
; X32-SSE2-NEXT: leal (%eax,%edx,4), %eax | ; X32-SSE2-NEXT: leal (%eax,%edx,4), %eax | ||||
; X32-SSE2-NEXT: leal (%eax,%esi,8), %eax | ; X32-SSE2-NEXT: leal (%eax,%esi,8), %eax | ||||
; X32-SSE2-NEXT: popl %esi | ; X32-SSE2-NEXT: popl %esi | ||||
; X32-SSE2-NEXT: .Lcfi2: | |||||
; X32-SSE2-NEXT: .cfi_def_cfa_offset 4 | |||||
; X32-SSE2-NEXT: retl | ; X32-SSE2-NEXT: retl | ||||
; | ; | ||||
; X32-AVX2-LABEL: PR15215_good: | ; X32-AVX2-LABEL: PR15215_good: | ||||
; X32-AVX2: # BB#0: # %entry | ; X32-AVX2: # BB#0: # %entry | ||||
; X32-AVX2-NEXT: pushl %esi | ; X32-AVX2-NEXT: pushl %esi | ||||
; X32-AVX2-NEXT: .Lcfi0: | ; X32-AVX2-NEXT: .Lcfi0: | ||||
; X32-AVX2-NEXT: .cfi_def_cfa_offset 8 | ; X32-AVX2-NEXT: .cfi_def_cfa_offset 8 | ||||
; X32-AVX2-NEXT: .Lcfi1: | ; X32-AVX2-NEXT: .Lcfi1: | ||||
; X32-AVX2-NEXT: .cfi_offset %esi, -8 | ; X32-AVX2-NEXT: .cfi_offset %esi, -8 | ||||
; X32-AVX2-NEXT: vmovd %xmm0, %eax | ; X32-AVX2-NEXT: vmovd %xmm0, %eax | ||||
; X32-AVX2-NEXT: andl $1, %eax | ; X32-AVX2-NEXT: andl $1, %eax | ||||
; X32-AVX2-NEXT: vpextrd $1, %xmm0, %ecx | ; X32-AVX2-NEXT: vpextrd $1, %xmm0, %ecx | ||||
; X32-AVX2-NEXT: andl $1, %ecx | ; X32-AVX2-NEXT: andl $1, %ecx | ||||
; X32-AVX2-NEXT: vpextrd $2, %xmm0, %edx | ; X32-AVX2-NEXT: vpextrd $2, %xmm0, %edx | ||||
; X32-AVX2-NEXT: andl $1, %edx | ; X32-AVX2-NEXT: andl $1, %edx | ||||
; X32-AVX2-NEXT: vpextrd $3, %xmm0, %esi | ; X32-AVX2-NEXT: vpextrd $3, %xmm0, %esi | ||||
; X32-AVX2-NEXT: andl $1, %esi | ; X32-AVX2-NEXT: andl $1, %esi | ||||
; X32-AVX2-NEXT: leal (%eax,%ecx,2), %eax | ; X32-AVX2-NEXT: leal (%eax,%ecx,2), %eax | ||||
; X32-AVX2-NEXT: leal (%eax,%edx,4), %eax | ; X32-AVX2-NEXT: leal (%eax,%edx,4), %eax | ||||
; X32-AVX2-NEXT: leal (%eax,%esi,8), %eax | ; X32-AVX2-NEXT: leal (%eax,%esi,8), %eax | ||||
; X32-AVX2-NEXT: popl %esi | ; X32-AVX2-NEXT: popl %esi | ||||
; X32-AVX2-NEXT: .Lcfi2: | |||||
; X32-AVX2-NEXT: .cfi_def_cfa_offset 4 | |||||
; X32-AVX2-NEXT: retl | ; X32-AVX2-NEXT: retl | ||||
; | ; | ||||
; X64-LABEL: PR15215_good: | ; X64-LABEL: PR15215_good: | ||||
; X64: # BB#0: # %entry | ; X64: # BB#0: # %entry | ||||
; X64-NEXT: # kill: %ECX<def> %ECX<kill> %RCX<def> | ; X64-NEXT: # kill: %ECX<def> %ECX<kill> %RCX<def> | ||||
; X64-NEXT: # kill: %EDX<def> %EDX<kill> %RDX<def> | ; X64-NEXT: # kill: %EDX<def> %EDX<kill> %RDX<def> | ||||
; X64-NEXT: # kill: %ESI<def> %ESI<kill> %RSI<def> | ; X64-NEXT: # kill: %ESI<def> %ESI<kill> %RSI<def> | ||||
; X64-NEXT: # kill: %EDI<def> %EDI<kill> %RDI<def> | ; X64-NEXT: # kill: %EDI<def> %EDI<kill> %RDI<def> | ||||
▲ Show 20 Lines • Show All 56 Lines • Show Last 20 Lines |