diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-10-31 18:43:24 +0000 | 
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-10-31 18:43:24 +0000 | 
| commit | a5793820fdce733ab65a1181a9b0ac805d85be7b (patch) | |
| tree | b39b35a45a41bcf737df569d62e4f7bb32b8713e | |
| parent | c1927f12db384fbab205a05e7a118d78132caae6 (diff) | |
| download | bcm5719-llvm-a5793820fdce733ab65a1181a9b0ac805d85be7b.tar.gz bcm5719-llvm-a5793820fdce733ab65a1181a9b0ac805d85be7b.zip | |
[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
| -rw-r--r-- | llvm/test/CodeGen/X86/bitcast-and-setcc-128.ll | 102 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/bitcast-and-setcc-256.ll | 56 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/bitcast-and-setcc-512.ll | 56 | 
3 files changed, 107 insertions, 107 deletions
| diff --git a/llvm/test/CodeGen/X86/bitcast-and-setcc-128.ll b/llvm/test/CodeGen/X86/bitcast-and-setcc-128.ll index 1d482b1b00e..2ea93aef009 100644 --- a/llvm/test/CodeGen/X86/bitcast-and-setcc-128.ll +++ b/llvm/test/CodeGen/X86/bitcast-and-setcc-128.ll @@ -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 diff --git a/llvm/test/CodeGen/X86/bitcast-and-setcc-256.ll b/llvm/test/CodeGen/X86/bitcast-and-setcc-256.ll index a8522b3c238..e197713c679 100644 --- a/llvm/test/CodeGen/X86/bitcast-and-setcc-256.ll +++ b/llvm/test/CodeGen/X86/bitcast-and-setcc-256.ll @@ -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 diff --git a/llvm/test/CodeGen/X86/bitcast-and-setcc-512.ll b/llvm/test/CodeGen/X86/bitcast-and-setcc-512.ll index 3ee23be73cc..f6cfbbb4044 100644 --- a/llvm/test/CodeGen/X86/bitcast-and-setcc-512.ll +++ b/llvm/test/CodeGen/X86/bitcast-and-setcc-512.ll @@ -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 | 

