[X86] Remove icmp undef from reduced tests
Pre-commit for D59363 (Add icmp UNDEF handling to SelectionDAG::FoldSetCC) Approved by @spatel (Sanjay Patel) llvm-svn: 356859
This commit is contained in:
		
							parent
							
								
									a71c0ed471
								
							
						
					
					
						commit
						4465a765ee
					
				| 
						 | 
				
			
			@ -14,7 +14,7 @@ target triple = "x86_64-unknown-linux-gnu"
 | 
			
		|||
@d = external global i32*, align 8
 | 
			
		||||
 | 
			
		||||
; Function Attrs: norecurse noreturn nounwind uwtable
 | 
			
		||||
define void @fn1(i32 %p1) {
 | 
			
		||||
define void @fn1(i32 %p1, i32 %p2, i64 %p3) {
 | 
			
		||||
entry:
 | 
			
		||||
  %tmp = load i32*, i32** @d, align 8
 | 
			
		||||
  %tmp1 = load i32*, i32** @a, align 8
 | 
			
		||||
| 
						 | 
				
			
			@ -26,10 +26,10 @@ for.cond:                                         ; preds = %for.inc14, %entry
 | 
			
		|||
  %indvars.iv30.in = phi i32 [ %indvars.iv30, %for.inc14 ], [ %p1, %entry ]
 | 
			
		||||
  %c.0 = phi i32 [ %inc15, %for.inc14 ], [ 1, %entry ]
 | 
			
		||||
  %k.0 = phi i32 [ %k.1.lcssa, %for.inc14 ], [ undef, %entry ]
 | 
			
		||||
  %tmp3 = icmp sgt i32 undef, 0
 | 
			
		||||
  %tmp3 = icmp sgt i32 %p2, 0
 | 
			
		||||
  %smax52 = select i1 %tmp3, i32 %c.0, i32 0
 | 
			
		||||
  %tmp4 = zext i32 %smax52 to i64
 | 
			
		||||
  %tmp5 = icmp sgt i64 undef, %tmp4
 | 
			
		||||
  %tmp5 = icmp sgt i64 %p3, %tmp4
 | 
			
		||||
  %smax53 = select i1 %tmp5, i64 %tmp2, i64 %tmp4
 | 
			
		||||
  %tmp6 = add nsw i64 %smax53, 1
 | 
			
		||||
  %tmp7 = sub nsw i64 %tmp6, %tmp4
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -96,18 +96,18 @@ define i32 @loop_shared_header(i8* %exe, i32 %exesz, i32 %headsize, i32 %min, i3
 | 
			
		|||
; CHECK-NEXT:    testb %al, %al
 | 
			
		||||
; CHECK-NEXT:    jne .LBB1_26
 | 
			
		||||
; CHECK-NEXT:  # %bb.1: # %if.end19
 | 
			
		||||
; CHECK-NEXT:    movl %esi, %ebp
 | 
			
		||||
; CHECK-NEXT:    movl %esi, %r13d
 | 
			
		||||
; CHECK-NEXT:    movq %rdi, %r12
 | 
			
		||||
; CHECK-NEXT:    movl (%rax), %r14d
 | 
			
		||||
; CHECK-NEXT:    leal (,%r14,4), %r13d
 | 
			
		||||
; CHECK-NEXT:    movl %r13d, %r15d
 | 
			
		||||
; CHECK-NEXT:    movl (%rax), %ebp
 | 
			
		||||
; CHECK-NEXT:    leal (,%rbp,4), %r14d
 | 
			
		||||
; CHECK-NEXT:    movl %r14d, %r15d
 | 
			
		||||
; CHECK-NEXT:    movl $1, %esi
 | 
			
		||||
; CHECK-NEXT:    movq %r15, %rdi
 | 
			
		||||
; CHECK-NEXT:    callq cli_calloc
 | 
			
		||||
; CHECK-NEXT:    testl %ebp, %ebp
 | 
			
		||||
; CHECK-NEXT:    testl %r13d, %r13d
 | 
			
		||||
; CHECK-NEXT:    je .LBB1_25
 | 
			
		||||
; CHECK-NEXT:  # %bb.2: # %if.end19
 | 
			
		||||
; CHECK-NEXT:    testl %r14d, %r14d
 | 
			
		||||
; CHECK-NEXT:    testl %ebp, %ebp
 | 
			
		||||
; CHECK-NEXT:    je .LBB1_25
 | 
			
		||||
; CHECK-NEXT:  # %bb.3: # %if.end19
 | 
			
		||||
; CHECK-NEXT:    movq %rax, %rbx
 | 
			
		||||
| 
						 | 
				
			
			@ -115,37 +115,37 @@ define i32 @loop_shared_header(i8* %exe, i32 %exesz, i32 %headsize, i32 %min, i3
 | 
			
		|||
; CHECK-NEXT:    testb %al, %al
 | 
			
		||||
; CHECK-NEXT:    jne .LBB1_25
 | 
			
		||||
; CHECK-NEXT:  # %bb.4: # %if.end19
 | 
			
		||||
; CHECK-NEXT:    cmpq %r12, %rax
 | 
			
		||||
; CHECK-NEXT:    cmpq %r12, %rbx
 | 
			
		||||
; CHECK-NEXT:    jb .LBB1_25
 | 
			
		||||
; CHECK-NEXT:  # %bb.5: # %if.end50
 | 
			
		||||
; CHECK-NEXT:    movq %rbx, %rdi
 | 
			
		||||
; CHECK-NEXT:    movq %r15, %rdx
 | 
			
		||||
; CHECK-NEXT:    callq memcpy
 | 
			
		||||
; CHECK-NEXT:    cmpl $4, %r13d
 | 
			
		||||
; CHECK-NEXT:    cmpl $4, %r14d
 | 
			
		||||
; CHECK-NEXT:    jb .LBB1_28
 | 
			
		||||
; CHECK-NEXT:  # %bb.6: # %shared_preheader
 | 
			
		||||
; CHECK-NEXT:    movb $32, %dl
 | 
			
		||||
; CHECK-NEXT:    xorl %eax, %eax
 | 
			
		||||
; CHECK-NEXT:    # implicit-def: $rcx
 | 
			
		||||
; CHECK-NEXT:    testl %eax, %eax
 | 
			
		||||
; CHECK-NEXT:    testl %ebp, %ebp
 | 
			
		||||
; CHECK-NEXT:    je .LBB1_18
 | 
			
		||||
; CHECK-NEXT:    .p2align 4, 0x90
 | 
			
		||||
; CHECK-NEXT:  .LBB1_8: # %shared_loop_header
 | 
			
		||||
; CHECK-NEXT:    # =>This Inner Loop Header: Depth=1
 | 
			
		||||
; CHECK-NEXT:    cmpq %rbx, %rax
 | 
			
		||||
; CHECK-NEXT:    jb .LBB1_27
 | 
			
		||||
; CHECK-NEXT:    testq %rbx, %rbx
 | 
			
		||||
; CHECK-NEXT:    jne .LBB1_27
 | 
			
		||||
; CHECK-NEXT:  # %bb.9: # %inner_loop_body
 | 
			
		||||
; CHECK-NEXT:    # in Loop: Header=BB1_8 Depth=1
 | 
			
		||||
; CHECK-NEXT:    testl %eax, %eax
 | 
			
		||||
; CHECK-NEXT:    jns .LBB1_8
 | 
			
		||||
; CHECK-NEXT:  # %bb.10: # %if.end96.i
 | 
			
		||||
; CHECK-NEXT:    # in Loop: Header=BB1_8 Depth=1
 | 
			
		||||
; CHECK-NEXT:    cmpl $3, %eax
 | 
			
		||||
; CHECK-NEXT:    cmpl $3, %ebp
 | 
			
		||||
; CHECK-NEXT:    jae .LBB1_22
 | 
			
		||||
; CHECK-NEXT:  # %bb.11: # %if.end287.i
 | 
			
		||||
; CHECK-NEXT:    # in Loop: Header=BB1_8 Depth=1
 | 
			
		||||
; CHECK-NEXT:    xorl %esi, %esi
 | 
			
		||||
; CHECK-NEXT:    cmpl $1, %eax
 | 
			
		||||
; CHECK-NEXT:    cmpl $1, %ebp
 | 
			
		||||
; CHECK-NEXT:    setne %dl
 | 
			
		||||
; CHECK-NEXT:    testb %al, %al
 | 
			
		||||
; CHECK-NEXT:    jne .LBB1_15
 | 
			
		||||
| 
						 | 
				
			
			@ -180,7 +180,7 @@ define i32 @loop_shared_header(i8* %exe, i32 %exesz, i32 %headsize, i32 %min, i3
 | 
			
		|||
; CHECK-NEXT:    decl %esi
 | 
			
		||||
; CHECK-NEXT:    movzwl %si, %esi
 | 
			
		||||
; CHECK-NEXT:    leaq 1(%rcx,%rsi), %rcx
 | 
			
		||||
; CHECK-NEXT:    testl %eax, %eax
 | 
			
		||||
; CHECK-NEXT:    testl %ebp, %ebp
 | 
			
		||||
; CHECK-NEXT:    jne .LBB1_8
 | 
			
		||||
; CHECK-NEXT:  .LBB1_18: # %while.cond.us1412.i
 | 
			
		||||
; CHECK-NEXT:    xorl %eax, %eax
 | 
			
		||||
| 
						 | 
				
			
			@ -223,7 +223,7 @@ if.end19:                                         ; preds = %entry
 | 
			
		|||
  %notrhs = icmp eq i32 %0, 0
 | 
			
		||||
  %or.cond117.not = or i1 %1, %notrhs
 | 
			
		||||
  %or.cond202 = or i1 %or.cond117.not, undef
 | 
			
		||||
  %cmp35 = icmp ult i8* undef, %exe
 | 
			
		||||
  %cmp35 = icmp ult i8* %call, %exe
 | 
			
		||||
  %or.cond203 = or i1 %or.cond202, %cmp35
 | 
			
		||||
  br i1 %or.cond203, label %cleanup, label %if.end50
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -238,7 +238,7 @@ shared_preheader:                                 ; preds = %if.end50
 | 
			
		|||
outer_loop_header:                                ; preds = %outer_loop_latch, %shared_preheader
 | 
			
		||||
  %bits.1.i = phi i8 [ 32, %shared_preheader ], [ %bits.43.i, %outer_loop_latch ]
 | 
			
		||||
  %dst.0.ph.i = phi i8* [ undef, %shared_preheader ], [ %scevgep679.i, %outer_loop_latch ]
 | 
			
		||||
  %2 = icmp eq i32 undef, 0
 | 
			
		||||
  %2 = icmp eq i32 %0, 0
 | 
			
		||||
  br i1 %2, label %while.cond.us1412.i, label %shared_loop_header
 | 
			
		||||
 | 
			
		||||
while.cond.us1412.i:                              ; preds = %outer_loop_header
 | 
			
		||||
| 
						 | 
				
			
			@ -252,7 +252,7 @@ if.end41.us1436.i:                                ; preds = %while.cond.us1412.i
 | 
			
		|||
 | 
			
		||||
shared_loop_header:                               ; preds = %dup_early2, %dup_early1
 | 
			
		||||
  %dst.0.i = phi i8* [ undef, %inner_loop_body ], [ %dst.0.ph.i, %outer_loop_header ], [ undef, %dead_block ]
 | 
			
		||||
  %cmp3.i1172.i = icmp ult i8* undef, %call
 | 
			
		||||
  %cmp3.i1172.i = icmp ult i8* null, %call
 | 
			
		||||
  br i1 %cmp3.i1172.i, label %wunpsect.exit.thread.loopexit389, label %inner_loop_body
 | 
			
		||||
 | 
			
		||||
inner_loop_body:                                  ; preds = %shared_loop_header
 | 
			
		||||
| 
						 | 
				
			
			@ -260,11 +260,11 @@ inner_loop_body:                                  ; preds = %shared_loop_header
 | 
			
		|||
  br i1 %3, label %if.end96.i, label %shared_loop_header
 | 
			
		||||
 | 
			
		||||
dead_block:                                       ; preds = %inner_loop_body
 | 
			
		||||
  %cmp75.i = icmp ult i8* %dst.0.i, undef
 | 
			
		||||
  %cmp75.i = icmp ult i8* %dst.0.i, null
 | 
			
		||||
  br label %shared_loop_header
 | 
			
		||||
 | 
			
		||||
if.end96.i:                                       ; preds = %inner_loop_body
 | 
			
		||||
  %cmp97.i = icmp ugt i32 undef, 2
 | 
			
		||||
  %cmp97.i = icmp ugt i32 %0, 2
 | 
			
		||||
  br i1 %cmp97.i, label %if.then99.i, label %if.end287.i
 | 
			
		||||
 | 
			
		||||
if.then99.i:                                      ; preds = %if.end96.i
 | 
			
		||||
| 
						 | 
				
			
			@ -272,7 +272,7 @@ if.then99.i:                                      ; preds = %if.end96.i
 | 
			
		|||
  br label %cleanup
 | 
			
		||||
 | 
			
		||||
if.end287.i:                                      ; preds = %if.end96.i
 | 
			
		||||
  %cmp291.i = icmp ne i32 undef, 1
 | 
			
		||||
  %cmp291.i = icmp ne i32 %0, 1
 | 
			
		||||
  %conv294.i = select i1 %cmp291.i, i16 4, i16 3
 | 
			
		||||
  br i1 undef, label %if.end308.i, label %outer_loop_latch
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@
 | 
			
		|||
; and if.then64, and then the block dup2 gets duplicated into land.lhs.true
 | 
			
		||||
; and if.end70
 | 
			
		||||
 | 
			
		||||
define void @repeated_tail_dup(i1 %a1, i1 %a2, i32* %a4, i32* %a5, i8* %a6) #0 align 2 {
 | 
			
		||||
define void @repeated_tail_dup(i1 %a1, i1 %a2, i32* %a4, i32* %a5, i8* %a6, i32 %a7) #0 align 2 {
 | 
			
		||||
; CHECK-LABEL: repeated_tail_dup:
 | 
			
		||||
; CHECK:       # %bb.0: # %entry
 | 
			
		||||
; CHECK-NEXT:    .p2align 4, 0x90
 | 
			
		||||
| 
						 | 
				
			
			@ -27,7 +27,7 @@ define void @repeated_tail_dup(i1 %a1, i1 %a2, i32* %a4, i32* %a5, i8* %a6) #0 a
 | 
			
		|||
; CHECK-NEXT:  # %bb.4: # %if.then64
 | 
			
		||||
; CHECK-NEXT:    # in Loop: Header=BB0_1 Depth=1
 | 
			
		||||
; CHECK-NEXT:    movb $1, (%r8)
 | 
			
		||||
; CHECK-NEXT:    testl %eax, %eax
 | 
			
		||||
; CHECK-NEXT:    testl %r9d, %r9d
 | 
			
		||||
; CHECK-NEXT:    je .LBB0_1
 | 
			
		||||
; CHECK-NEXT:    jmp .LBB0_8
 | 
			
		||||
; CHECK-NEXT:    .p2align 4, 0x90
 | 
			
		||||
| 
						 | 
				
			
			@ -37,7 +37,7 @@ define void @repeated_tail_dup(i1 %a1, i1 %a2, i32* %a4, i32* %a5, i8* %a6) #0 a
 | 
			
		|||
; CHECK-NEXT:  .LBB0_6: # %dup2
 | 
			
		||||
; CHECK-NEXT:    # in Loop: Header=BB0_1 Depth=1
 | 
			
		||||
; CHECK-NEXT:    movl $2, (%rcx)
 | 
			
		||||
; CHECK-NEXT:    testl %eax, %eax
 | 
			
		||||
; CHECK-NEXT:    testl %r9d, %r9d
 | 
			
		||||
; CHECK-NEXT:    je .LBB0_1
 | 
			
		||||
; CHECK-NEXT:  .LBB0_8: # %for.end
 | 
			
		||||
; CHECK-NEXT:    retq
 | 
			
		||||
| 
						 | 
				
			
			@ -68,7 +68,7 @@ dup2:                                             ; preds = %if.end70, %land.lhs
 | 
			
		|||
 | 
			
		||||
dup1:                                             ; preds = %dup2, %if.then64
 | 
			
		||||
  %val = load i32, i32* %a4, align 8
 | 
			
		||||
  %switch = icmp ult i32 undef, 1
 | 
			
		||||
  %switch = icmp ult i32 %a7, 1
 | 
			
		||||
  br i1 %switch, label %for.cond, label %for.end
 | 
			
		||||
 | 
			
		||||
for.end:                                          ; preds = %dup1
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue