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/avx512bw-intrinsics-fast-isel.ll
Show First 20 Lines • Show All 713 Lines • ▼ Show 20 Lines | |||||
; X32-NEXT: movb {{[0-9]+}}(%esp), %al | ; X32-NEXT: movb {{[0-9]+}}(%esp), %al | ||||
; X32-NEXT: kshiftlq $1, %k0, %k0 | ; X32-NEXT: kshiftlq $1, %k0, %k0 | ||||
; X32-NEXT: kshiftrq $1, %k0, %k0 | ; X32-NEXT: kshiftrq $1, %k0, %k0 | ||||
; X32-NEXT: kshiftlq $63, %k1, %k1 | ; X32-NEXT: kshiftlq $63, %k1, %k1 | ||||
; X32-NEXT: korq %k1, %k0, %k1 | ; X32-NEXT: korq %k1, %k0, %k1 | ||||
; X32-NEXT: vpbroadcastb %eax, %zmm3 {%k1} | ; X32-NEXT: vpbroadcastb %eax, %zmm3 {%k1} | ||||
; X32-NEXT: vmovdqa64 %zmm3, %zmm0 | ; X32-NEXT: vmovdqa64 %zmm3, %zmm0 | ||||
; X32-NEXT: popl %ebx | ; X32-NEXT: popl %ebx | ||||
; X32-NEXT: .Lcfi2: | |||||
; X32-NEXT: .cfi_def_cfa_offset 4 | |||||
; X32-NEXT: retl | ; X32-NEXT: retl | ||||
; | ; | ||||
; X64-LABEL: test_mm512_mask_set1_epi8: | ; X64-LABEL: test_mm512_mask_set1_epi8: | ||||
; X64: # BB#0: # %entry | ; X64: # BB#0: # %entry | ||||
; X64-NEXT: kmovq %rdi, %k1 | ; X64-NEXT: kmovq %rdi, %k1 | ||||
; X64-NEXT: vpbroadcastb %esi, %zmm0 {%k1} | ; X64-NEXT: vpbroadcastb %esi, %zmm0 {%k1} | ||||
; X64-NEXT: retq | ; X64-NEXT: retq | ||||
entry: | entry: | ||||
%vecinit.i.i = insertelement <64 x i8> undef, i8 %__A, i32 0 | %vecinit.i.i = insertelement <64 x i8> undef, i8 %__A, i32 0 | ||||
%vecinit63.i.i = shufflevector <64 x i8> %vecinit.i.i, <64 x i8> undef, <64 x i32> zeroinitializer | %vecinit63.i.i = shufflevector <64 x i8> %vecinit.i.i, <64 x i8> undef, <64 x i32> zeroinitializer | ||||
%0 = bitcast <8 x i64> %__O to <64 x i8> | %0 = bitcast <8 x i64> %__O to <64 x i8> | ||||
%1 = bitcast i64 %__M to <64 x i1> | %1 = bitcast i64 %__M to <64 x i1> | ||||
%2 = select <64 x i1> %1, <64 x i8> %vecinit63.i.i, <64 x i8> %0 | %2 = select <64 x i1> %1, <64 x i8> %vecinit63.i.i, <64 x i8> %0 | ||||
%3 = bitcast <64 x i8> %2 to <8 x i64> | %3 = bitcast <64 x i8> %2 to <8 x i64> | ||||
ret <8 x i64> %3 | ret <8 x i64> %3 | ||||
} | } | ||||
define <8 x i64> @test_mm512_maskz_set1_epi8(i64 %__M, i8 signext %__A) { | define <8 x i64> @test_mm512_maskz_set1_epi8(i64 %__M, i8 signext %__A) { | ||||
; X32-LABEL: test_mm512_maskz_set1_epi8: | ; X32-LABEL: test_mm512_maskz_set1_epi8: | ||||
; X32: # BB#0: # %entry | ; X32: # BB#0: # %entry | ||||
; X32-NEXT: pushl %ebx | ; X32-NEXT: pushl %ebx | ||||
; X32-NEXT: .Lcfi2: | |||||
; X32-NEXT: .cfi_def_cfa_offset 8 | |||||
; X32-NEXT: .Lcfi3: | ; X32-NEXT: .Lcfi3: | ||||
; X32-NEXT: .cfi_def_cfa_offset 8 | |||||
; X32-NEXT: .Lcfi4: | |||||
; X32-NEXT: .cfi_offset %ebx, -8 | ; X32-NEXT: .cfi_offset %ebx, -8 | ||||
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax | ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax | ||||
; X32-NEXT: movl %eax, %ecx | ; X32-NEXT: movl %eax, %ecx | ||||
; X32-NEXT: andb $2, %cl | ; X32-NEXT: andb $2, %cl | ||||
; X32-NEXT: shrb %cl | ; X32-NEXT: shrb %cl | ||||
; X32-NEXT: kmovd %ecx, %k0 | ; X32-NEXT: kmovd %ecx, %k0 | ||||
; X32-NEXT: vpmovm2b %k0, %zmm0 | ; X32-NEXT: vpmovm2b %k0, %zmm0 | ||||
; X32-NEXT: vpsllw $8, %xmm0, %xmm0 | ; X32-NEXT: vpsllw $8, %xmm0, %xmm0 | ||||
▲ Show 20 Lines • Show All 689 Lines • ▼ Show 20 Lines | |||||
; X32-NEXT: movb {{[0-9]+}}(%esp), %al | ; X32-NEXT: movb {{[0-9]+}}(%esp), %al | ||||
; X32-NEXT: vpmovb2m %zmm0, %k1 | ; X32-NEXT: vpmovb2m %zmm0, %k1 | ||||
; X32-NEXT: kshiftlq $1, %k1, %k1 | ; X32-NEXT: kshiftlq $1, %k1, %k1 | ||||
; X32-NEXT: kshiftrq $1, %k1, %k1 | ; X32-NEXT: kshiftrq $1, %k1, %k1 | ||||
; X32-NEXT: kshiftlq $63, %k0, %k0 | ; X32-NEXT: kshiftlq $63, %k0, %k0 | ||||
; X32-NEXT: korq %k0, %k1, %k1 | ; X32-NEXT: korq %k0, %k1, %k1 | ||||
; X32-NEXT: vpbroadcastb %eax, %zmm0 {%k1} {z} | ; X32-NEXT: vpbroadcastb %eax, %zmm0 {%k1} {z} | ||||
; X32-NEXT: popl %ebx | ; X32-NEXT: popl %ebx | ||||
; X32-NEXT: .Lcfi5: | |||||
; X32-NEXT: .cfi_def_cfa_offset 4 | |||||
; X32-NEXT: retl | ; X32-NEXT: retl | ||||
; | ; | ||||
; X64-LABEL: test_mm512_maskz_set1_epi8: | ; X64-LABEL: test_mm512_maskz_set1_epi8: | ||||
; X64: # BB#0: # %entry | ; X64: # BB#0: # %entry | ||||
; X64-NEXT: kmovq %rdi, %k1 | ; X64-NEXT: kmovq %rdi, %k1 | ||||
; X64-NEXT: vpbroadcastb %esi, %zmm0 {%k1} {z} | ; X64-NEXT: vpbroadcastb %esi, %zmm0 {%k1} {z} | ||||
; X64-NEXT: retq | ; X64-NEXT: retq | ||||
entry: | entry: | ||||
▲ Show 20 Lines • Show All 462 Lines • Show Last 20 Lines |