[llvm] r304168 - [X86] Replace undef value in flaky test

Zvi Rackover via llvm-commits llvm-commits at lists.llvm.org
Mon May 29 11:27:00 PDT 2017


Author: zvi
Date: Mon May 29 13:27:00 2017
New Revision: 304168

URL: http://llvm.org/viewvc/llvm-project?rev=304168&view=rev
Log:
[X86] Replace undef value in flaky test

D33311 exposes the flakiness in this test. Replacing the undef placed by
bugpoint, makes it more interesting and robust.

Modified:
    llvm/trunk/test/CodeGen/X86/setcc-lowering.ll

Modified: llvm/trunk/test/CodeGen/X86/setcc-lowering.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/setcc-lowering.ll?rev=304168&r1=304167&r2=304168&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/setcc-lowering.ll (original)
+++ llvm/trunk/test/CodeGen/X86/setcc-lowering.ll Mon May 29 13:27:00 2017
@@ -41,14 +41,67 @@ entry:
   ret <8 x i16> %3
 }
 
-define void @pr26232(i64 %a) {
+define void @pr26232(i64 %a, <16 x i1> %b) {
 ; AVX-LABEL: pr26232:
 ; AVX:       # BB#0: # %for_loop599.preheader
+; AVX-NEXT:    vpxor %xmm1, %xmm1, %xmm1
 ; AVX-NEXT:    .p2align 4, 0x90
 ; AVX-NEXT:  .LBB1_1: # %for_loop599
 ; AVX-NEXT:    # =>This Inner Loop Header: Depth=1
+; AVX-NEXT:    xorl %eax, %eax
 ; AVX-NEXT:    cmpq $65536, %rdi # imm = 0x10000
-; AVX-NEXT:    setl -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    setl %al
+; AVX-NEXT:    vmovd %eax, %xmm2
+; AVX-NEXT:    vpshufb %xmm1, %xmm2, %xmm2
+; AVX-NEXT:    vpand %xmm0, %xmm2, %xmm2
+; AVX-NEXT:    vpextrb $15, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $14, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $13, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $12, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $11, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $10, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $9, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $8, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $7, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $6, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $5, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $4, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $3, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $2, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $1, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
+; AVX-NEXT:    vpextrb $0, %xmm2, %eax
+; AVX-NEXT:    andb $1, %al
+; AVX-NEXT:    movb %al, -{{[0-9]+}}(%rsp)
 ; AVX-NEXT:    cmpw $0, -{{[0-9]+}}(%rsp)
 ; AVX-NEXT:    jne .LBB1_1
 ; AVX-NEXT:  # BB#2: # %for_exit600
@@ -61,6 +114,9 @@ define void @pr26232(i64 %a) {
 ; KNL-32-NEXT:    .cfi_def_cfa_offset 8
 ; KNL-32-NEXT:  .Lcfi1:
 ; KNL-32-NEXT:    .cfi_offset %esi, -8
+; KNL-32-NEXT:    vpmovsxbd %xmm0, %zmm0
+; KNL-32-NEXT:    vpslld $31, %zmm0, %zmm0
+; KNL-32-NEXT:    vptestmd %zmm0, %zmm0, %k0
 ; KNL-32-NEXT:    movl {{[0-9]+}}(%esp), %eax
 ; KNL-32-NEXT:    movl {{[0-9]+}}(%esp), %ecx
 ; KNL-32-NEXT:    movw $-1, %dx
@@ -72,6 +128,9 @@ define void @pr26232(i64 %a) {
 ; KNL-32-NEXT:    sbbl $0, %esi
 ; KNL-32-NEXT:    movl $0, %esi
 ; KNL-32-NEXT:    cmovlw %dx, %si
+; KNL-32-NEXT:    kmovw %esi, %k1
+; KNL-32-NEXT:    kandw %k0, %k1, %k1
+; KNL-32-NEXT:    kmovw %k1, %esi
 ; KNL-32-NEXT:    testw %si, %si
 ; KNL-32-NEXT:    jne .LBB1_1
 ; KNL-32-NEXT:  # BB#2: # %for_exit600
@@ -87,7 +146,7 @@ for_loop599:
   %less_i_load605_ = icmp slt i64 %a, 65536
   %less_i_load605__broadcast_init = insertelement <16 x i1> undef, i1 %less_i_load605_, i32 0
   %less_i_load605__broadcast = shufflevector <16 x i1> %less_i_load605__broadcast_init, <16 x i1> undef, <16 x i32> zeroinitializer
-  %"oldMask&test607" = and <16 x i1> %less_i_load605__broadcast, undef
+  %"oldMask&test607" = and <16 x i1> %less_i_load605__broadcast, %b
   %intmask.i894 = bitcast <16 x i1> %"oldMask&test607" to i16
   %res.i895 = icmp eq i16 %intmask.i894, 0
   br i1 %res.i895, label %for_exit600, label %for_loop599




More information about the llvm-commits mailing list