mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
[X86][AVX512] Regenerate tests to remove retl/retq regex
These are only testing 64-bit targets so we don't need the regex llvm-svn: 317021
This commit is contained in:
parent
9cb8b71cb7
commit
a834950f83
@ -15,7 +15,7 @@ define i8 @v8i16(<8 x i16> %a, <8 x i16> %b, <8 x i16> %c, <8 x i16> %d) {
|
||||
; SSE2-SSSE3-NEXT: packsswb %xmm0, %xmm2
|
||||
; SSE2-SSSE3-NEXT: pmovmskb %xmm2, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX12-LABEL: v8i16:
|
||||
; AVX12: # BB#0:
|
||||
@ -25,7 +25,7 @@ define i8 @v8i16(<8 x i16> %a, <8 x i16> %b, <8 x i16> %c, <8 x i16> %d) {
|
||||
; AVX12-NEXT: vpacksswb %xmm0, %xmm0, %xmm0
|
||||
; AVX12-NEXT: vpmovmskb %xmm0, %eax
|
||||
; AVX12-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX12-NEXT: ret{{[l|q]}}
|
||||
; AVX12-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v8i16:
|
||||
; AVX512F: # BB#0:
|
||||
@ -40,7 +40,7 @@ define i8 @v8i16(<8 x i16> %a, <8 x i16> %b, <8 x i16> %c, <8 x i16> %d) {
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v8i16:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -48,7 +48,7 @@ define i8 @v8i16(<8 x i16> %a, <8 x i16> %b, <8 x i16> %c, <8 x i16> %d) {
|
||||
; AVX512BW-NEXT: vpcmpgtw %xmm3, %xmm2, %k0 {%k1}
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <8 x i16> %a, %b
|
||||
%x1 = icmp sgt <8 x i16> %c, %d
|
||||
%y = and <8 x i1> %x0, %x1
|
||||
@ -64,7 +64,7 @@ define i4 @v4i32(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c, <4 x i32> %d) {
|
||||
; SSE2-SSSE3-NEXT: pand %xmm0, %xmm2
|
||||
; SSE2-SSSE3-NEXT: movmskps %xmm2, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX12-LABEL: v4i32:
|
||||
; AVX12: # BB#0:
|
||||
@ -73,7 +73,7 @@ define i4 @v4i32(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c, <4 x i32> %d) {
|
||||
; AVX12-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; AVX12-NEXT: vmovmskps %xmm0, %eax
|
||||
; AVX12-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX12-NEXT: ret{{[l|q]}}
|
||||
; AVX12-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v4i32:
|
||||
; AVX512F: # BB#0:
|
||||
@ -82,7 +82,7 @@ define i4 @v4i32(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c, <4 x i32> %d) {
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512F-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v4i32:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -91,7 +91,7 @@ define i4 @v4i32(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c, <4 x i32> %d) {
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512BW-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <4 x i32> %a, %b
|
||||
%x1 = icmp sgt <4 x i32> %c, %d
|
||||
%y = and <4 x i1> %x0, %x1
|
||||
@ -107,7 +107,7 @@ define i4 @v4f32(<4 x float> %a, <4 x float> %b, <4 x float> %c, <4 x float> %d)
|
||||
; SSE2-SSSE3-NEXT: andps %xmm1, %xmm3
|
||||
; SSE2-SSSE3-NEXT: movmskps %xmm3, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX12-LABEL: v4f32:
|
||||
; AVX12: # BB#0:
|
||||
@ -116,7 +116,7 @@ define i4 @v4f32(<4 x float> %a, <4 x float> %b, <4 x float> %c, <4 x float> %d)
|
||||
; AVX12-NEXT: vandps %xmm1, %xmm0, %xmm0
|
||||
; AVX12-NEXT: vmovmskps %xmm0, %eax
|
||||
; AVX12-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX12-NEXT: ret{{[l|q]}}
|
||||
; AVX12-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v4f32:
|
||||
; AVX512F: # BB#0:
|
||||
@ -125,7 +125,7 @@ define i4 @v4f32(<4 x float> %a, <4 x float> %b, <4 x float> %c, <4 x float> %d)
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512F-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v4f32:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -134,7 +134,7 @@ define i4 @v4f32(<4 x float> %a, <4 x float> %b, <4 x float> %c, <4 x float> %d)
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512BW-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = fcmp ogt <4 x float> %a, %b
|
||||
%x1 = fcmp ogt <4 x float> %c, %d
|
||||
%y = and <4 x i1> %x0, %x1
|
||||
@ -150,7 +150,7 @@ define i16 @v16i8(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c, <16 x i8> %d) {
|
||||
; SSE2-SSSE3-NEXT: pand %xmm0, %xmm2
|
||||
; SSE2-SSSE3-NEXT: pmovmskb %xmm2, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX12-LABEL: v16i8:
|
||||
; AVX12: # BB#0:
|
||||
@ -159,7 +159,7 @@ define i16 @v16i8(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c, <16 x i8> %d) {
|
||||
; AVX12-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; AVX12-NEXT: vpmovmskb %xmm0, %eax
|
||||
; AVX12-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; AVX12-NEXT: ret{{[l|q]}}
|
||||
; AVX12-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v16i8:
|
||||
; AVX512F: # BB#0:
|
||||
@ -174,7 +174,7 @@ define i16 @v16i8(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c, <16 x i8> %d) {
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v16i8:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -182,7 +182,7 @@ define i16 @v16i8(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c, <16 x i8> %d) {
|
||||
; AVX512BW-NEXT: vpcmpgtb %xmm3, %xmm2, %k0 {%k1}
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <16 x i8> %a, %b
|
||||
%x1 = icmp sgt <16 x i8> %c, %d
|
||||
%y = and <16 x i1> %x0, %x1
|
||||
@ -245,7 +245,7 @@ define i2 @v2i8(<2 x i8> %a, <2 x i8> %b, <2 x i8> %c, <2 x i8> %d) {
|
||||
; SSE2-SSSE3-NEXT: pand %xmm1, %xmm0
|
||||
; SSE2-SSSE3-NEXT: movmskpd %xmm0, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX1-LABEL: v2i8:
|
||||
; AVX1: # BB#0:
|
||||
@ -274,7 +274,7 @@ define i2 @v2i8(<2 x i8> %a, <2 x i8> %b, <2 x i8> %c, <2 x i8> %d) {
|
||||
; AVX1-NEXT: vpand %xmm2, %xmm0, %xmm0
|
||||
; AVX1-NEXT: vmovmskpd %xmm0, %eax
|
||||
; AVX1-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX1-NEXT: ret{{[l|q]}}
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: v2i8:
|
||||
; AVX2: # BB#0:
|
||||
@ -303,7 +303,7 @@ define i2 @v2i8(<2 x i8> %a, <2 x i8> %b, <2 x i8> %c, <2 x i8> %d) {
|
||||
; AVX2-NEXT: vpand %xmm2, %xmm0, %xmm0
|
||||
; AVX2-NEXT: vmovmskpd %xmm0, %eax
|
||||
; AVX2-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX2-NEXT: ret{{[l|q]}}
|
||||
; AVX2-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v2i8:
|
||||
; AVX512F: # BB#0:
|
||||
@ -320,7 +320,7 @@ define i2 @v2i8(<2 x i8> %a, <2 x i8> %b, <2 x i8> %c, <2 x i8> %d) {
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512F-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v2i8:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -337,7 +337,7 @@ define i2 @v2i8(<2 x i8> %a, <2 x i8> %b, <2 x i8> %c, <2 x i8> %d) {
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512BW-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <2 x i8> %a, %b
|
||||
%x1 = icmp sgt <2 x i8> %c, %d
|
||||
%y = and <2 x i1> %x0, %x1
|
||||
@ -400,7 +400,7 @@ define i2 @v2i16(<2 x i16> %a, <2 x i16> %b, <2 x i16> %c, <2 x i16> %d) {
|
||||
; SSE2-SSSE3-NEXT: pand %xmm1, %xmm0
|
||||
; SSE2-SSSE3-NEXT: movmskpd %xmm0, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX1-LABEL: v2i16:
|
||||
; AVX1: # BB#0:
|
||||
@ -429,7 +429,7 @@ define i2 @v2i16(<2 x i16> %a, <2 x i16> %b, <2 x i16> %c, <2 x i16> %d) {
|
||||
; AVX1-NEXT: vpand %xmm2, %xmm0, %xmm0
|
||||
; AVX1-NEXT: vmovmskpd %xmm0, %eax
|
||||
; AVX1-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX1-NEXT: ret{{[l|q]}}
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: v2i16:
|
||||
; AVX2: # BB#0:
|
||||
@ -458,7 +458,7 @@ define i2 @v2i16(<2 x i16> %a, <2 x i16> %b, <2 x i16> %c, <2 x i16> %d) {
|
||||
; AVX2-NEXT: vpand %xmm2, %xmm0, %xmm0
|
||||
; AVX2-NEXT: vmovmskpd %xmm0, %eax
|
||||
; AVX2-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX2-NEXT: ret{{[l|q]}}
|
||||
; AVX2-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v2i16:
|
||||
; AVX512F: # BB#0:
|
||||
@ -475,7 +475,7 @@ define i2 @v2i16(<2 x i16> %a, <2 x i16> %b, <2 x i16> %c, <2 x i16> %d) {
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512F-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v2i16:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -492,7 +492,7 @@ define i2 @v2i16(<2 x i16> %a, <2 x i16> %b, <2 x i16> %c, <2 x i16> %d) {
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512BW-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <2 x i16> %a, %b
|
||||
%x1 = icmp sgt <2 x i16> %c, %d
|
||||
%y = and <2 x i1> %x0, %x1
|
||||
@ -547,7 +547,7 @@ define i2 @v2i32(<2 x i32> %a, <2 x i32> %b, <2 x i32> %c, <2 x i32> %d) {
|
||||
; SSE2-SSSE3-NEXT: pand %xmm3, %xmm0
|
||||
; SSE2-SSSE3-NEXT: movmskpd %xmm0, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX1-LABEL: v2i32:
|
||||
; AVX1: # BB#0:
|
||||
@ -572,7 +572,7 @@ define i2 @v2i32(<2 x i32> %a, <2 x i32> %b, <2 x i32> %c, <2 x i32> %d) {
|
||||
; AVX1-NEXT: vpand %xmm2, %xmm0, %xmm0
|
||||
; AVX1-NEXT: vmovmskpd %xmm0, %eax
|
||||
; AVX1-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX1-NEXT: ret{{[l|q]}}
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: v2i32:
|
||||
; AVX2: # BB#0:
|
||||
@ -597,7 +597,7 @@ define i2 @v2i32(<2 x i32> %a, <2 x i32> %b, <2 x i32> %c, <2 x i32> %d) {
|
||||
; AVX2-NEXT: vpand %xmm2, %xmm0, %xmm0
|
||||
; AVX2-NEXT: vmovmskpd %xmm0, %eax
|
||||
; AVX2-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX2-NEXT: ret{{[l|q]}}
|
||||
; AVX2-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v2i32:
|
||||
; AVX512F: # BB#0:
|
||||
@ -614,7 +614,7 @@ define i2 @v2i32(<2 x i32> %a, <2 x i32> %b, <2 x i32> %c, <2 x i32> %d) {
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512F-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v2i32:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -631,7 +631,7 @@ define i2 @v2i32(<2 x i32> %a, <2 x i32> %b, <2 x i32> %c, <2 x i32> %d) {
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512BW-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <2 x i32> %a, %b
|
||||
%x1 = icmp sgt <2 x i32> %c, %d
|
||||
%y = and <2 x i1> %x0, %x1
|
||||
@ -666,7 +666,7 @@ define i2 @v2i64(<2 x i64> %a, <2 x i64> %b, <2 x i64> %c, <2 x i64> %d) {
|
||||
; SSE2-SSSE3-NEXT: pand %xmm1, %xmm0
|
||||
; SSE2-SSSE3-NEXT: movmskpd %xmm0, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX12-LABEL: v2i64:
|
||||
; AVX12: # BB#0:
|
||||
@ -675,7 +675,7 @@ define i2 @v2i64(<2 x i64> %a, <2 x i64> %b, <2 x i64> %c, <2 x i64> %d) {
|
||||
; AVX12-NEXT: vpand %xmm1, %xmm0, %xmm0
|
||||
; AVX12-NEXT: vmovmskpd %xmm0, %eax
|
||||
; AVX12-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX12-NEXT: ret{{[l|q]}}
|
||||
; AVX12-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v2i64:
|
||||
; AVX512F: # BB#0:
|
||||
@ -684,7 +684,7 @@ define i2 @v2i64(<2 x i64> %a, <2 x i64> %b, <2 x i64> %c, <2 x i64> %d) {
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512F-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v2i64:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -693,7 +693,7 @@ define i2 @v2i64(<2 x i64> %a, <2 x i64> %b, <2 x i64> %c, <2 x i64> %d) {
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512BW-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <2 x i64> %a, %b
|
||||
%x1 = icmp sgt <2 x i64> %c, %d
|
||||
%y = and <2 x i1> %x0, %x1
|
||||
@ -709,7 +709,7 @@ define i2 @v2f64(<2 x double> %a, <2 x double> %b, <2 x double> %c, <2 x double>
|
||||
; SSE2-SSSE3-NEXT: andpd %xmm1, %xmm3
|
||||
; SSE2-SSSE3-NEXT: movmskpd %xmm3, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX12-LABEL: v2f64:
|
||||
; AVX12: # BB#0:
|
||||
@ -718,7 +718,7 @@ define i2 @v2f64(<2 x double> %a, <2 x double> %b, <2 x double> %c, <2 x double>
|
||||
; AVX12-NEXT: vandpd %xmm1, %xmm0, %xmm0
|
||||
; AVX12-NEXT: vmovmskpd %xmm0, %eax
|
||||
; AVX12-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX12-NEXT: ret{{[l|q]}}
|
||||
; AVX12-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v2f64:
|
||||
; AVX512F: # BB#0:
|
||||
@ -727,7 +727,7 @@ define i2 @v2f64(<2 x double> %a, <2 x double> %b, <2 x double> %c, <2 x double>
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512F-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v2f64:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -736,7 +736,7 @@ define i2 @v2f64(<2 x double> %a, <2 x double> %b, <2 x double> %c, <2 x double>
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512BW-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = fcmp ogt <2 x double> %a, %b
|
||||
%x1 = fcmp ogt <2 x double> %c, %d
|
||||
%y = and <2 x i1> %x0, %x1
|
||||
@ -760,7 +760,7 @@ define i4 @v4i8(<4 x i8> %a, <4 x i8> %b, <4 x i8> %c, <4 x i8> %d) {
|
||||
; SSE2-SSSE3-NEXT: pand %xmm2, %xmm0
|
||||
; SSE2-SSSE3-NEXT: movmskps %xmm0, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX12-LABEL: v4i8:
|
||||
; AVX12: # BB#0:
|
||||
@ -777,7 +777,7 @@ define i4 @v4i8(<4 x i8> %a, <4 x i8> %b, <4 x i8> %c, <4 x i8> %d) {
|
||||
; AVX12-NEXT: vpand %xmm2, %xmm0, %xmm0
|
||||
; AVX12-NEXT: vmovmskps %xmm0, %eax
|
||||
; AVX12-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX12-NEXT: ret{{[l|q]}}
|
||||
; AVX12-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v4i8:
|
||||
; AVX512F: # BB#0:
|
||||
@ -794,7 +794,7 @@ define i4 @v4i8(<4 x i8> %a, <4 x i8> %b, <4 x i8> %c, <4 x i8> %d) {
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512F-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v4i8:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -811,7 +811,7 @@ define i4 @v4i8(<4 x i8> %a, <4 x i8> %b, <4 x i8> %c, <4 x i8> %d) {
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512BW-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <4 x i8> %a, %b
|
||||
%x1 = icmp sgt <4 x i8> %c, %d
|
||||
%y = and <4 x i1> %x0, %x1
|
||||
@ -835,7 +835,7 @@ define i4 @v4i16(<4 x i16> %a, <4 x i16> %b, <4 x i16> %c, <4 x i16> %d) {
|
||||
; SSE2-SSSE3-NEXT: pand %xmm2, %xmm0
|
||||
; SSE2-SSSE3-NEXT: movmskps %xmm0, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX12-LABEL: v4i16:
|
||||
; AVX12: # BB#0:
|
||||
@ -852,7 +852,7 @@ define i4 @v4i16(<4 x i16> %a, <4 x i16> %b, <4 x i16> %c, <4 x i16> %d) {
|
||||
; AVX12-NEXT: vpand %xmm2, %xmm0, %xmm0
|
||||
; AVX12-NEXT: vmovmskps %xmm0, %eax
|
||||
; AVX12-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX12-NEXT: ret{{[l|q]}}
|
||||
; AVX12-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v4i16:
|
||||
; AVX512F: # BB#0:
|
||||
@ -869,7 +869,7 @@ define i4 @v4i16(<4 x i16> %a, <4 x i16> %b, <4 x i16> %c, <4 x i16> %d) {
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512F-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v4i16:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -886,7 +886,7 @@ define i4 @v4i16(<4 x i16> %a, <4 x i16> %b, <4 x i16> %c, <4 x i16> %d) {
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512BW-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <4 x i16> %a, %b
|
||||
%x1 = icmp sgt <4 x i16> %c, %d
|
||||
%y = and <4 x i1> %x0, %x1
|
||||
@ -911,7 +911,7 @@ define i8 @v8i8(<8 x i8> %a, <8 x i8> %b, <8 x i8> %c, <8 x i8> %d) {
|
||||
; SSE2-SSSE3-NEXT: packsswb %xmm0, %xmm0
|
||||
; SSE2-SSSE3-NEXT: pmovmskb %xmm0, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX12-LABEL: v8i8:
|
||||
; AVX12: # BB#0:
|
||||
@ -929,7 +929,7 @@ define i8 @v8i8(<8 x i8> %a, <8 x i8> %b, <8 x i8> %c, <8 x i8> %d) {
|
||||
; AVX12-NEXT: vpacksswb %xmm0, %xmm0, %xmm0
|
||||
; AVX12-NEXT: vpmovmskb %xmm0, %eax
|
||||
; AVX12-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX12-NEXT: ret{{[l|q]}}
|
||||
; AVX12-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v8i8:
|
||||
; AVX512F: # BB#0:
|
||||
@ -952,7 +952,7 @@ define i8 @v8i8(<8 x i8> %a, <8 x i8> %b, <8 x i8> %c, <8 x i8> %d) {
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v8i8:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -968,7 +968,7 @@ define i8 @v8i8(<8 x i8> %a, <8 x i8> %b, <8 x i8> %c, <8 x i8> %d) {
|
||||
; AVX512BW-NEXT: vpcmpgtw %xmm3, %xmm2, %k0 {%k1}
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <8 x i8> %a, %b
|
||||
%x1 = icmp sgt <8 x i8> %c, %d
|
||||
%y = and <8 x i1> %x0, %x1
|
||||
|
@ -55,7 +55,7 @@ define i4 @v4i64(<4 x i64> %a, <4 x i64> %b, <4 x i64> %c, <4 x i64> %d) {
|
||||
; SSE2-SSSE3-NEXT: andps %xmm0, %xmm2
|
||||
; SSE2-SSSE3-NEXT: movmskps %xmm2, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX1-LABEL: v4i64:
|
||||
; AVX1: # BB#0:
|
||||
@ -73,7 +73,7 @@ define i4 @v4i64(<4 x i64> %a, <4 x i64> %b, <4 x i64> %c, <4 x i64> %d) {
|
||||
; AVX1-NEXT: vmovmskps %xmm0, %eax
|
||||
; AVX1-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX1-NEXT: vzeroupper
|
||||
; AVX1-NEXT: ret{{[l|q]}}
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: v4i64:
|
||||
; AVX2: # BB#0:
|
||||
@ -87,7 +87,7 @@ define i4 @v4i64(<4 x i64> %a, <4 x i64> %b, <4 x i64> %c, <4 x i64> %d) {
|
||||
; AVX2-NEXT: vmovmskps %xmm0, %eax
|
||||
; AVX2-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX2-NEXT: vzeroupper
|
||||
; AVX2-NEXT: ret{{[l|q]}}
|
||||
; AVX2-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v4i64:
|
||||
; AVX512F: # BB#0:
|
||||
@ -97,7 +97,7 @@ define i4 @v4i64(<4 x i64> %a, <4 x i64> %b, <4 x i64> %c, <4 x i64> %d) {
|
||||
; AVX512F-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512F-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v4i64:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -107,7 +107,7 @@ define i4 @v4i64(<4 x i64> %a, <4 x i64> %b, <4 x i64> %c, <4 x i64> %d) {
|
||||
; AVX512BW-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512BW-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512BW-NEXT: vzeroupper
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <4 x i64> %a, %b
|
||||
%x1 = icmp sgt <4 x i64> %c, %d
|
||||
%y = and <4 x i1> %x0, %x1
|
||||
@ -127,7 +127,7 @@ define i4 @v4f64(<4 x double> %a, <4 x double> %b, <4 x double> %c, <4 x double>
|
||||
; SSE2-SSSE3-NEXT: andps %xmm2, %xmm6
|
||||
; SSE2-SSSE3-NEXT: movmskps %xmm6, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX12-LABEL: v4f64:
|
||||
; AVX12: # BB#0:
|
||||
@ -141,7 +141,7 @@ define i4 @v4f64(<4 x double> %a, <4 x double> %b, <4 x double> %c, <4 x double>
|
||||
; AVX12-NEXT: vmovmskps %xmm0, %eax
|
||||
; AVX12-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX12-NEXT: vzeroupper
|
||||
; AVX12-NEXT: ret{{[l|q]}}
|
||||
; AVX12-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v4f64:
|
||||
; AVX512F: # BB#0:
|
||||
@ -151,7 +151,7 @@ define i4 @v4f64(<4 x double> %a, <4 x double> %b, <4 x double> %c, <4 x double>
|
||||
; AVX512F-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512F-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v4f64:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -161,7 +161,7 @@ define i4 @v4f64(<4 x double> %a, <4 x double> %b, <4 x double> %c, <4 x double>
|
||||
; AVX512BW-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; AVX512BW-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; AVX512BW-NEXT: vzeroupper
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = fcmp ogt <4 x double> %a, %b
|
||||
%x1 = fcmp ogt <4 x double> %c, %d
|
||||
%y = and <4 x i1> %x0, %x1
|
||||
@ -181,7 +181,7 @@ define i16 @v16i16(<16 x i16> %a, <16 x i16> %b, <16 x i16> %c, <16 x i16> %d) {
|
||||
; SSE2-SSSE3-NEXT: pand %xmm0, %xmm4
|
||||
; SSE2-SSSE3-NEXT: pmovmskb %xmm4, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX1-LABEL: v16i16:
|
||||
; AVX1: # BB#0:
|
||||
@ -199,7 +199,7 @@ define i16 @v16i16(<16 x i16> %a, <16 x i16> %b, <16 x i16> %c, <16 x i16> %d) {
|
||||
; AVX1-NEXT: vpmovmskb %xmm0, %eax
|
||||
; AVX1-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; AVX1-NEXT: vzeroupper
|
||||
; AVX1-NEXT: ret{{[l|q]}}
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: v16i16:
|
||||
; AVX2: # BB#0:
|
||||
@ -213,7 +213,7 @@ define i16 @v16i16(<16 x i16> %a, <16 x i16> %b, <16 x i16> %c, <16 x i16> %d) {
|
||||
; AVX2-NEXT: vpmovmskb %xmm0, %eax
|
||||
; AVX2-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; AVX2-NEXT: vzeroupper
|
||||
; AVX2-NEXT: ret{{[l|q]}}
|
||||
; AVX2-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v16i16:
|
||||
; AVX512F: # BB#0:
|
||||
@ -228,7 +228,7 @@ define i16 @v16i16(<16 x i16> %a, <16 x i16> %b, <16 x i16> %c, <16 x i16> %d) {
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v16i16:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -237,7 +237,7 @@ define i16 @v16i16(<16 x i16> %a, <16 x i16> %b, <16 x i16> %c, <16 x i16> %d) {
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; AVX512BW-NEXT: vzeroupper
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <16 x i16> %a, %b
|
||||
%x1 = icmp sgt <16 x i16> %c, %d
|
||||
%y = and <16 x i1> %x0, %x1
|
||||
@ -258,7 +258,7 @@ define i8 @v8i32(<8 x i32> %a, <8 x i32> %b, <8 x i32> %c, <8 x i32> %d) {
|
||||
; SSE2-SSSE3-NEXT: packsswb %xmm0, %xmm4
|
||||
; SSE2-SSSE3-NEXT: pmovmskb %xmm4, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX1-LABEL: v8i32:
|
||||
; AVX1: # BB#0:
|
||||
@ -277,7 +277,7 @@ define i8 @v8i32(<8 x i32> %a, <8 x i32> %b, <8 x i32> %c, <8 x i32> %d) {
|
||||
; AVX1-NEXT: vpmovmskb %xmm0, %eax
|
||||
; AVX1-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX1-NEXT: vzeroupper
|
||||
; AVX1-NEXT: ret{{[l|q]}}
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: v8i32:
|
||||
; AVX2: # BB#0:
|
||||
@ -292,7 +292,7 @@ define i8 @v8i32(<8 x i32> %a, <8 x i32> %b, <8 x i32> %c, <8 x i32> %d) {
|
||||
; AVX2-NEXT: vpmovmskb %xmm0, %eax
|
||||
; AVX2-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX2-NEXT: vzeroupper
|
||||
; AVX2-NEXT: ret{{[l|q]}}
|
||||
; AVX2-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v8i32:
|
||||
; AVX512F: # BB#0:
|
||||
@ -301,7 +301,7 @@ define i8 @v8i32(<8 x i32> %a, <8 x i32> %b, <8 x i32> %c, <8 x i32> %d) {
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v8i32:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -310,7 +310,7 @@ define i8 @v8i32(<8 x i32> %a, <8 x i32> %b, <8 x i32> %c, <8 x i32> %d) {
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX512BW-NEXT: vzeroupper
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <8 x i32> %a, %b
|
||||
%x1 = icmp sgt <8 x i32> %c, %d
|
||||
%y = and <8 x i1> %x0, %x1
|
||||
@ -331,7 +331,7 @@ define i8 @v8f32(<8 x float> %a, <8 x float> %b, <8 x float> %c, <8 x float> %d)
|
||||
; SSE2-SSSE3-NEXT: packsswb %xmm0, %xmm6
|
||||
; SSE2-SSSE3-NEXT: pmovmskb %xmm6, %eax
|
||||
; SSE2-SSSE3-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX12-LABEL: v8f32:
|
||||
; AVX12: # BB#0:
|
||||
@ -346,7 +346,7 @@ define i8 @v8f32(<8 x float> %a, <8 x float> %b, <8 x float> %c, <8 x float> %d)
|
||||
; AVX12-NEXT: vpmovmskb %xmm0, %eax
|
||||
; AVX12-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX12-NEXT: vzeroupper
|
||||
; AVX12-NEXT: ret{{[l|q]}}
|
||||
; AVX12-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v8f32:
|
||||
; AVX512F: # BB#0:
|
||||
@ -355,7 +355,7 @@ define i8 @v8f32(<8 x float> %a, <8 x float> %b, <8 x float> %c, <8 x float> %d)
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v8f32:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -364,7 +364,7 @@ define i8 @v8f32(<8 x float> %a, <8 x float> %b, <8 x float> %c, <8 x float> %d)
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX512BW-NEXT: vzeroupper
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = fcmp ogt <8 x float> %a, %b
|
||||
%x1 = fcmp ogt <8 x float> %c, %d
|
||||
%y = and <8 x i1> %x0, %x1
|
||||
@ -385,7 +385,7 @@ define i32 @v32i8(<32 x i8> %a, <32 x i8> %b, <32 x i8> %c, <32 x i8> %d) {
|
||||
; SSE2-SSSE3-NEXT: pmovmskb %xmm5, %eax
|
||||
; SSE2-SSSE3-NEXT: shll $16, %eax
|
||||
; SSE2-SSSE3-NEXT: orl %ecx, %eax
|
||||
; SSE2-SSSE3-NEXT: ret{{[l|q]}}
|
||||
; SSE2-SSSE3-NEXT: retq
|
||||
;
|
||||
; AVX1-LABEL: v32i8:
|
||||
; AVX1: # BB#0:
|
||||
@ -404,7 +404,7 @@ define i32 @v32i8(<32 x i8> %a, <32 x i8> %b, <32 x i8> %c, <32 x i8> %d) {
|
||||
; AVX1-NEXT: shll $16, %eax
|
||||
; AVX1-NEXT: orl %ecx, %eax
|
||||
; AVX1-NEXT: vzeroupper
|
||||
; AVX1-NEXT: ret{{[l|q]}}
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: v32i8:
|
||||
; AVX2: # BB#0:
|
||||
@ -413,7 +413,7 @@ define i32 @v32i8(<32 x i8> %a, <32 x i8> %b, <32 x i8> %c, <32 x i8> %d) {
|
||||
; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
|
||||
; AVX2-NEXT: vpmovmskb %ymm0, %eax
|
||||
; AVX2-NEXT: vzeroupper
|
||||
; AVX2-NEXT: ret{{[l|q]}}
|
||||
; AVX2-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v32i8:
|
||||
; AVX512F: # BB#0:
|
||||
@ -440,7 +440,7 @@ define i32 @v32i8(<32 x i8> %a, <32 x i8> %b, <32 x i8> %c, <32 x i8> %d) {
|
||||
; AVX512F-NEXT: movq %rbp, %rsp
|
||||
; AVX512F-NEXT: popq %rbp
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v32i8:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -448,7 +448,7 @@ define i32 @v32i8(<32 x i8> %a, <32 x i8> %b, <32 x i8> %c, <32 x i8> %d) {
|
||||
; AVX512BW-NEXT: vpcmpgtb %ymm3, %ymm2, %k0 {%k1}
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: vzeroupper
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <32 x i8> %a, %b
|
||||
%x1 = icmp sgt <32 x i8> %c, %d
|
||||
%y = and <32 x i1> %x0, %x1
|
||||
|
@ -42,7 +42,7 @@ define i8 @v8i64(<8 x i64> %a, <8 x i64> %b, <8 x i64> %c, <8 x i64> %d) {
|
||||
; SSE-NEXT: packsswb %xmm0, %xmm8
|
||||
; SSE-NEXT: pmovmskb %xmm8, %eax
|
||||
; SSE-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE-NEXT: ret{{[l|q]}}
|
||||
; SSE-NEXT: retq
|
||||
;
|
||||
; AVX1-LABEL: v8i64:
|
||||
; AVX1: # BB#0:
|
||||
@ -78,7 +78,7 @@ define i8 @v8i64(<8 x i64> %a, <8 x i64> %b, <8 x i64> %c, <8 x i64> %d) {
|
||||
; AVX1-NEXT: vpmovmskb %xmm0, %eax
|
||||
; AVX1-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX1-NEXT: vzeroupper
|
||||
; AVX1-NEXT: ret{{[l|q]}}
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: v8i64:
|
||||
; AVX2: # BB#0:
|
||||
@ -106,7 +106,7 @@ define i8 @v8i64(<8 x i64> %a, <8 x i64> %b, <8 x i64> %c, <8 x i64> %d) {
|
||||
; AVX2-NEXT: vpmovmskb %xmm0, %eax
|
||||
; AVX2-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX2-NEXT: vzeroupper
|
||||
; AVX2-NEXT: ret{{[l|q]}}
|
||||
; AVX2-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v8i64:
|
||||
; AVX512F: # BB#0:
|
||||
@ -115,7 +115,7 @@ define i8 @v8i64(<8 x i64> %a, <8 x i64> %b, <8 x i64> %c, <8 x i64> %d) {
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v8i64:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -124,7 +124,7 @@ define i8 @v8i64(<8 x i64> %a, <8 x i64> %b, <8 x i64> %c, <8 x i64> %d) {
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX512BW-NEXT: vzeroupper
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <8 x i64> %a, %b
|
||||
%x1 = icmp sgt <8 x i64> %c, %d
|
||||
%y = and <8 x i1> %x0, %x1
|
||||
@ -169,7 +169,7 @@ define i8 @v8f64(<8 x double> %a, <8 x double> %b, <8 x double> %c, <8 x double>
|
||||
; SSE-NEXT: packsswb %xmm0, %xmm8
|
||||
; SSE-NEXT: pmovmskb %xmm8, %eax
|
||||
; SSE-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; SSE-NEXT: ret{{[l|q]}}
|
||||
; SSE-NEXT: retq
|
||||
;
|
||||
; AVX12-LABEL: v8f64:
|
||||
; AVX12: # BB#0:
|
||||
@ -197,7 +197,7 @@ define i8 @v8f64(<8 x double> %a, <8 x double> %b, <8 x double> %c, <8 x double>
|
||||
; AVX12-NEXT: vpmovmskb %xmm0, %eax
|
||||
; AVX12-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX12-NEXT: vzeroupper
|
||||
; AVX12-NEXT: ret{{[l|q]}}
|
||||
; AVX12-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v8f64:
|
||||
; AVX512F: # BB#0:
|
||||
@ -206,7 +206,7 @@ define i8 @v8f64(<8 x double> %a, <8 x double> %b, <8 x double> %c, <8 x double>
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v8f64:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -215,7 +215,7 @@ define i8 @v8f64(<8 x double> %a, <8 x double> %b, <8 x double> %c, <8 x double>
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill>
|
||||
; AVX512BW-NEXT: vzeroupper
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = fcmp ogt <8 x double> %a, %b
|
||||
%x1 = fcmp ogt <8 x double> %c, %d
|
||||
%y = and <8 x i1> %x0, %x1
|
||||
@ -248,7 +248,7 @@ define i32 @v32i16(<32 x i16> %a, <32 x i16> %b, <32 x i16> %c, <32 x i16> %d) {
|
||||
; SSE-NEXT: pmovmskb %xmm8, %eax
|
||||
; SSE-NEXT: shll $16, %eax
|
||||
; SSE-NEXT: orl %ecx, %eax
|
||||
; SSE-NEXT: ret{{[l|q]}}
|
||||
; SSE-NEXT: retq
|
||||
;
|
||||
; AVX1-LABEL: v32i16:
|
||||
; AVX1: # BB#0:
|
||||
@ -279,7 +279,7 @@ define i32 @v32i16(<32 x i16> %a, <32 x i16> %b, <32 x i16> %c, <32 x i16> %d) {
|
||||
; AVX1-NEXT: shll $16, %eax
|
||||
; AVX1-NEXT: orl %ecx, %eax
|
||||
; AVX1-NEXT: vzeroupper
|
||||
; AVX1-NEXT: ret{{[l|q]}}
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: v32i16:
|
||||
; AVX2: # BB#0:
|
||||
@ -300,7 +300,7 @@ define i32 @v32i16(<32 x i16> %a, <32 x i16> %b, <32 x i16> %c, <32 x i16> %d) {
|
||||
; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
|
||||
; AVX2-NEXT: vpmovmskb %ymm0, %eax
|
||||
; AVX2-NEXT: vzeroupper
|
||||
; AVX2-NEXT: ret{{[l|q]}}
|
||||
; AVX2-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v32i16:
|
||||
; AVX512F: # BB#0:
|
||||
@ -595,7 +595,7 @@ define i32 @v32i16(<32 x i16> %a, <32 x i16> %b, <32 x i16> %c, <32 x i16> %d) {
|
||||
; AVX512F-NEXT: movq %rbp, %rsp
|
||||
; AVX512F-NEXT: popq %rbp
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v32i16:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -603,7 +603,7 @@ define i32 @v32i16(<32 x i16> %a, <32 x i16> %b, <32 x i16> %c, <32 x i16> %d) {
|
||||
; AVX512BW-NEXT: vpcmpgtw %zmm3, %zmm2, %k0 {%k1}
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: vzeroupper
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <32 x i16> %a, %b
|
||||
%x1 = icmp sgt <32 x i16> %c, %d
|
||||
%y = and <32 x i1> %x0, %x1
|
||||
@ -635,7 +635,7 @@ define i16 @v16i32(<16 x i32> %a, <16 x i32> %b, <16 x i32> %c, <16 x i32> %d) {
|
||||
; SSE-NEXT: pand %xmm0, %xmm8
|
||||
; SSE-NEXT: pmovmskb %xmm8, %eax
|
||||
; SSE-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; SSE-NEXT: ret{{[l|q]}}
|
||||
; SSE-NEXT: retq
|
||||
;
|
||||
; AVX1-LABEL: v16i32:
|
||||
; AVX1: # BB#0:
|
||||
@ -665,7 +665,7 @@ define i16 @v16i32(<16 x i32> %a, <16 x i32> %b, <16 x i32> %c, <16 x i32> %d) {
|
||||
; AVX1-NEXT: vpmovmskb %xmm0, %eax
|
||||
; AVX1-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; AVX1-NEXT: vzeroupper
|
||||
; AVX1-NEXT: ret{{[l|q]}}
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: v16i32:
|
||||
; AVX2: # BB#0:
|
||||
@ -687,7 +687,7 @@ define i16 @v16i32(<16 x i32> %a, <16 x i32> %b, <16 x i32> %c, <16 x i32> %d) {
|
||||
; AVX2-NEXT: vpmovmskb %xmm0, %eax
|
||||
; AVX2-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; AVX2-NEXT: vzeroupper
|
||||
; AVX2-NEXT: ret{{[l|q]}}
|
||||
; AVX2-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v16i32:
|
||||
; AVX512F: # BB#0:
|
||||
@ -696,7 +696,7 @@ define i16 @v16i32(<16 x i32> %a, <16 x i32> %b, <16 x i32> %c, <16 x i32> %d) {
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v16i32:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -705,7 +705,7 @@ define i16 @v16i32(<16 x i32> %a, <16 x i32> %b, <16 x i32> %c, <16 x i32> %d) {
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; AVX512BW-NEXT: vzeroupper
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <16 x i32> %a, %b
|
||||
%x1 = icmp sgt <16 x i32> %c, %d
|
||||
%y = and <16 x i1> %x0, %x1
|
||||
@ -737,7 +737,7 @@ define i16 @v16f32(<16 x float> %a, <16 x float> %b, <16 x float> %c, <16 x floa
|
||||
; SSE-NEXT: pand %xmm4, %xmm8
|
||||
; SSE-NEXT: pmovmskb %xmm8, %eax
|
||||
; SSE-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; SSE-NEXT: ret{{[l|q]}}
|
||||
; SSE-NEXT: retq
|
||||
;
|
||||
; AVX12-LABEL: v16f32:
|
||||
; AVX12: # BB#0:
|
||||
@ -759,7 +759,7 @@ define i16 @v16f32(<16 x float> %a, <16 x float> %b, <16 x float> %c, <16 x floa
|
||||
; AVX12-NEXT: vpmovmskb %xmm0, %eax
|
||||
; AVX12-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; AVX12-NEXT: vzeroupper
|
||||
; AVX12-NEXT: ret{{[l|q]}}
|
||||
; AVX12-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v16f32:
|
||||
; AVX512F: # BB#0:
|
||||
@ -768,7 +768,7 @@ define i16 @v16f32(<16 x float> %a, <16 x float> %b, <16 x float> %c, <16 x floa
|
||||
; AVX512F-NEXT: kmovw %k0, %eax
|
||||
; AVX512F-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v16f32:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -777,7 +777,7 @@ define i16 @v16f32(<16 x float> %a, <16 x float> %b, <16 x float> %c, <16 x floa
|
||||
; AVX512BW-NEXT: kmovd %k0, %eax
|
||||
; AVX512BW-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill>
|
||||
; AVX512BW-NEXT: vzeroupper
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = fcmp ogt <16 x float> %a, %b
|
||||
%x1 = fcmp ogt <16 x float> %c, %d
|
||||
%y = and <16 x i1> %x0, %x1
|
||||
@ -1006,7 +1006,7 @@ define i64 @v64i8(<64 x i8> %a, <64 x i8> %b, <64 x i8> %c, <64 x i8> %d) {
|
||||
; SSE-NEXT: orl %edx, %eax
|
||||
; SSE-NEXT: shlq $32, %rax
|
||||
; SSE-NEXT: orq %rcx, %rax
|
||||
; SSE-NEXT: ret{{[l|q]}}
|
||||
; SSE-NEXT: retq
|
||||
;
|
||||
; AVX1-LABEL: v64i8:
|
||||
; AVX1: # BB#0:
|
||||
@ -1240,7 +1240,7 @@ define i64 @v64i8(<64 x i8> %a, <64 x i8> %b, <64 x i8> %c, <64 x i8> %d) {
|
||||
; AVX1-NEXT: movq %rbp, %rsp
|
||||
; AVX1-NEXT: popq %rbp
|
||||
; AVX1-NEXT: vzeroupper
|
||||
; AVX1-NEXT: ret{{[l|q]}}
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: v64i8:
|
||||
; AVX2: # BB#0:
|
||||
@ -1458,7 +1458,7 @@ define i64 @v64i8(<64 x i8> %a, <64 x i8> %b, <64 x i8> %c, <64 x i8> %d) {
|
||||
; AVX2-NEXT: movq %rbp, %rsp
|
||||
; AVX2-NEXT: popq %rbp
|
||||
; AVX2-NEXT: vzeroupper
|
||||
; AVX2-NEXT: ret{{[l|q]}}
|
||||
; AVX2-NEXT: retq
|
||||
;
|
||||
; AVX512F-LABEL: v64i8:
|
||||
; AVX512F: # BB#0:
|
||||
@ -1500,7 +1500,7 @@ define i64 @v64i8(<64 x i8> %a, <64 x i8> %b, <64 x i8> %c, <64 x i8> %d) {
|
||||
; AVX512F-NEXT: movq %rbp, %rsp
|
||||
; AVX512F-NEXT: popq %rbp
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: ret{{[l|q]}}
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: v64i8:
|
||||
; AVX512BW: # BB#0:
|
||||
@ -1508,7 +1508,7 @@ define i64 @v64i8(<64 x i8> %a, <64 x i8> %b, <64 x i8> %c, <64 x i8> %d) {
|
||||
; AVX512BW-NEXT: vpcmpgtb %zmm3, %zmm2, %k0 {%k1}
|
||||
; AVX512BW-NEXT: kmovq %k0, %rax
|
||||
; AVX512BW-NEXT: vzeroupper
|
||||
; AVX512BW-NEXT: ret{{[l|q]}}
|
||||
; AVX512BW-NEXT: retq
|
||||
%x0 = icmp sgt <64 x i8> %a, %b
|
||||
%x1 = icmp sgt <64 x i8> %c, %d
|
||||
%y = and <64 x i1> %x0, %x1
|
||||
|
Loading…
Reference in New Issue
Block a user