mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	AVX-512: simpyfied BUILD_VECTOR for masks; fixed cmp/test sequence
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201487 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
		@@ -39,25 +39,6 @@ define i32 @test3(float %a, float %b) {
 | 
			
		||||
  ret i32 %conv11.i
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
; CHECK-LABEL: test4
 | 
			
		||||
; CHECK: kortestw
 | 
			
		||||
; CHECK: jne
 | 
			
		||||
; CHECK: ret
 | 
			
		||||
declare i32 @llvm.x86.avx512.kortestz.w(i16, i16)
 | 
			
		||||
 | 
			
		||||
define i16 @test4(i16 %a, i16 %b) {
 | 
			
		||||
  %kortz = call i32 @llvm.x86.avx512.kortestz.w(i16 %a, i16 %b)
 | 
			
		||||
  %t1 = and i32 %kortz, 1
 | 
			
		||||
  %res = icmp eq i32 %t1, 0
 | 
			
		||||
  br i1 %res, label %A, label %B
 | 
			
		||||
 | 
			
		||||
 A: ret i16 %a
 | 
			
		||||
 B:
 | 
			
		||||
 %b1 = add i16 %a, %b
 | 
			
		||||
 ret i16 %b1
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
; CHECK-LABEL: test5
 | 
			
		||||
; CHECK: ret
 | 
			
		||||
define float @test5(float %p) #0 {
 | 
			
		||||
@@ -104,4 +85,4 @@ define i32 @test8(i32 %a1, i32 %a2, i32 %a3) {
 | 
			
		||||
  %tmp5 = or i1 %tmp3, %tmp4
 | 
			
		||||
  %res = select i1 %tmp5, i32 1, i32 %a3
 | 
			
		||||
  ret i32 %res
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -102,9 +102,8 @@ define i32 @test10(<16 x i32> %x, i32 %ind) nounwind {
 | 
			
		||||
;CHECK: vpcmpltud
 | 
			
		||||
;CKECK: kshiftlw $11
 | 
			
		||||
;CKECK: kshiftrw $15
 | 
			
		||||
;CHECK: kxorw
 | 
			
		||||
;CHECK: kortestw
 | 
			
		||||
;CHECK: jne
 | 
			
		||||
;CHECK: je
 | 
			
		||||
;CHECK: ret
 | 
			
		||||
;CHECK: ret
 | 
			
		||||
define <16 x i32> @test11(<16 x i32>%a, <16 x i32>%b) {
 | 
			
		||||
@@ -133,4 +132,17 @@ define i64 @test12(<16 x i64>%a, <16 x i64>%b, i64 %a1, i64 %b1) {
 | 
			
		||||
  ret i64 %res
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
;CHECK-LABEL: test13
 | 
			
		||||
;CHECK: cmpl
 | 
			
		||||
;CHECK: sbbl
 | 
			
		||||
;CKECK: orl $65532
 | 
			
		||||
;CHECK: ret
 | 
			
		||||
define i16 @test13(i32 %a, i32 %b) {
 | 
			
		||||
  %cmp_res = icmp ult i32 %a, %b
 | 
			
		||||
  %maskv = insertelement <16 x i1> <i1 true, i1 false, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>, i1 %cmp_res, i32 0
 | 
			
		||||
  %res = bitcast <16 x i1> %maskv to i16
 | 
			
		||||
  ret i16 %res
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user