forked from OSchip/llvm-project
				
			[ConstProp] add tests for vector reductions of poison; NFC
This commit is contained in:
		
							parent
							
								
									71597d40e8
								
							
						
					
					
						commit
						678018138d
					
				| 
						 | 
				
			
			@ -71,6 +71,15 @@ define i32 @add_undef1() {
 | 
			
		|||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
define i32 @add_poison() {
 | 
			
		||||
; CHECK-LABEL: @add_poison(
 | 
			
		||||
; CHECK-NEXT:    [[X:%.*]] = call i32 @llvm.vector.reduce.add.v8i32(<8 x i32> poison)
 | 
			
		||||
; CHECK-NEXT:    ret i32 [[X]]
 | 
			
		||||
;
 | 
			
		||||
  %x = call i32 @llvm.vector.reduce.add.v8i32(<8 x i32> poison)
 | 
			
		||||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
define i32 @mul_0() {
 | 
			
		||||
| 
						 | 
				
			
			@ -123,6 +132,15 @@ define i32 @mul_undef1() {
 | 
			
		|||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
define i32 @mul_poison() {
 | 
			
		||||
; CHECK-LABEL: @mul_poison(
 | 
			
		||||
; CHECK-NEXT:    [[X:%.*]] = call i32 @llvm.vector.reduce.mul.v8i32(<8 x i32> poison)
 | 
			
		||||
; CHECK-NEXT:    ret i32 [[X]]
 | 
			
		||||
;
 | 
			
		||||
  %x = call i32 @llvm.vector.reduce.mul.v8i32(<8 x i32> poison)
 | 
			
		||||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
define i32 @and_0() {
 | 
			
		||||
; CHECK-LABEL: @and_0(
 | 
			
		||||
| 
						 | 
				
			
			@ -174,6 +192,15 @@ define i32 @and_undef1() {
 | 
			
		|||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
define i32 @and_poison() {
 | 
			
		||||
; CHECK-LABEL: @and_poison(
 | 
			
		||||
; CHECK-NEXT:    [[X:%.*]] = call i32 @llvm.vector.reduce.and.v8i32(<8 x i32> poison)
 | 
			
		||||
; CHECK-NEXT:    ret i32 [[X]]
 | 
			
		||||
;
 | 
			
		||||
  %x = call i32 @llvm.vector.reduce.and.v8i32(<8 x i32> poison)
 | 
			
		||||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
define i32 @or_0() {
 | 
			
		||||
; CHECK-LABEL: @or_0(
 | 
			
		||||
| 
						 | 
				
			
			@ -225,6 +252,15 @@ define i32 @or_undef1() {
 | 
			
		|||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
define i32 @or_poison() {
 | 
			
		||||
; CHECK-LABEL: @or_poison(
 | 
			
		||||
; CHECK-NEXT:    [[X:%.*]] = call i32 @llvm.vector.reduce.or.v8i32(<8 x i32> poison)
 | 
			
		||||
; CHECK-NEXT:    ret i32 [[X]]
 | 
			
		||||
;
 | 
			
		||||
  %x = call i32 @llvm.vector.reduce.or.v8i32(<8 x i32> poison)
 | 
			
		||||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
define i32 @xor_0() {
 | 
			
		||||
; CHECK-LABEL: @xor_0(
 | 
			
		||||
| 
						 | 
				
			
			@ -276,6 +312,15 @@ define i32 @xor_undef1() {
 | 
			
		|||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
define i32 @xor_poison() {
 | 
			
		||||
; CHECK-LABEL: @xor_poison(
 | 
			
		||||
; CHECK-NEXT:    [[X:%.*]] = call i32 @llvm.vector.reduce.xor.v8i32(<8 x i32> poison)
 | 
			
		||||
; CHECK-NEXT:    ret i32 [[X]]
 | 
			
		||||
;
 | 
			
		||||
  %x = call i32 @llvm.vector.reduce.xor.v8i32(<8 x i32> poison)
 | 
			
		||||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
define i32 @smin_0() {
 | 
			
		||||
; CHECK-LABEL: @smin_0(
 | 
			
		||||
| 
						 | 
				
			
			@ -327,6 +372,15 @@ define i32 @smin_undef1() {
 | 
			
		|||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
define i32 @smin_poison() {
 | 
			
		||||
; CHECK-LABEL: @smin_poison(
 | 
			
		||||
; CHECK-NEXT:    [[X:%.*]] = call i32 @llvm.vector.reduce.smin.v8i32(<8 x i32> poison)
 | 
			
		||||
; CHECK-NEXT:    ret i32 [[X]]
 | 
			
		||||
;
 | 
			
		||||
  %x = call i32 @llvm.vector.reduce.smin.v8i32(<8 x i32> poison)
 | 
			
		||||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
define i32 @smax_0() {
 | 
			
		||||
; CHECK-LABEL: @smax_0(
 | 
			
		||||
| 
						 | 
				
			
			@ -378,6 +432,15 @@ define i32 @smax_undef1() {
 | 
			
		|||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
define i32 @smax_poison() {
 | 
			
		||||
; CHECK-LABEL: @smax_poison(
 | 
			
		||||
; CHECK-NEXT:    [[X:%.*]] = call i32 @llvm.vector.reduce.smax.v8i32(<8 x i32> poison)
 | 
			
		||||
; CHECK-NEXT:    ret i32 [[X]]
 | 
			
		||||
;
 | 
			
		||||
  %x = call i32 @llvm.vector.reduce.smax.v8i32(<8 x i32> poison)
 | 
			
		||||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
define i32 @umin_0() {
 | 
			
		||||
; CHECK-LABEL: @umin_0(
 | 
			
		||||
| 
						 | 
				
			
			@ -429,6 +492,15 @@ define i32 @umin_undef1() {
 | 
			
		|||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
define i32 @umin_poison() {
 | 
			
		||||
; CHECK-LABEL: @umin_poison(
 | 
			
		||||
; CHECK-NEXT:    [[X:%.*]] = call i32 @llvm.vector.reduce.umin.v8i32(<8 x i32> poison)
 | 
			
		||||
; CHECK-NEXT:    ret i32 [[X]]
 | 
			
		||||
;
 | 
			
		||||
  %x = call i32 @llvm.vector.reduce.umin.v8i32(<8 x i32> poison)
 | 
			
		||||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
define i32 @umax_0() {
 | 
			
		||||
; CHECK-LABEL: @umax_0(
 | 
			
		||||
| 
						 | 
				
			
			@ -479,3 +551,12 @@ define i32 @umax_undef1d() {
 | 
			
		|||
  %x = call i32 @llvm.vector.reduce.umax.v8i32(<8 x i32> <i32 1, i32 1, i32 undef, i32 1, i32 1, i32 1, i32 1, i32 1>)
 | 
			
		||||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
define i32 @umax_poison() {
 | 
			
		||||
; CHECK-LABEL: @umax_poison(
 | 
			
		||||
; CHECK-NEXT:    [[X:%.*]] = call i32 @llvm.vector.reduce.umax.v8i32(<8 x i32> poison)
 | 
			
		||||
; CHECK-NEXT:    ret i32 [[X]]
 | 
			
		||||
;
 | 
			
		||||
  %x = call i32 @llvm.vector.reduce.umax.v8i32(<8 x i32> poison)
 | 
			
		||||
  ret i32 %x
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue