mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:59:56 +00:00
Revert "[Verifier] Additional check for intrinsic get.active.lane.mask"
This reverts commit 8d5f64c4edbc190a5a8790157fa1d99cfac34016. Thanks to Eli Friedma for pointing out that this check is not appropiate here, this check will be moved to the Lint pass.
This commit is contained in:
parent
0a08f60d7f
commit
38fc834d2c
@ -4841,9 +4841,6 @@ void Verifier::visitIntrinsicCall(Intrinsic::ID ID, CallBase &Call) {
|
||||
auto *ElemTy = Call.getType()->getScalarType();
|
||||
Assert(ElemTy->isIntegerTy(1), "get_active_lane_mask: element type is not "
|
||||
"i1", Call);
|
||||
if (auto *TripCount = dyn_cast<ConstantInt>(Call.getArgOperand(1)))
|
||||
Assert(!TripCount->isZero(), "get_active_lane_mask: operand #2 "
|
||||
"must be greater than 0", Call);
|
||||
break;
|
||||
}
|
||||
case Intrinsic::masked_load: {
|
||||
|
@ -1,46 +1,21 @@
|
||||
; RUN: not llvm-as < %s -o /dev/null 2>&1 | FileCheck %s
|
||||
|
||||
declare <4 x i32> @llvm.get.active.lane.mask.v4i32.i32(i32, i32)
|
||||
|
||||
define <4 x i32> @t1(i32 %IV, i32 %TC) {
|
||||
define <4 x i32> @t1(i32 %IV, i32 %BTC) {
|
||||
; CHECK: get_active_lane_mask: element type is not i1
|
||||
; CHECK-NEXT: %res = call <4 x i32> @llvm.get.active.lane.mask.v4i32.i32(i32 %IV, i32 %TC)
|
||||
; CHECK-NEXT: %res = call <4 x i32> @llvm.get.active.lane.mask.v4i32.i32(i32 %IV, i32 %BTC)
|
||||
|
||||
%res = call <4 x i32> @llvm.get.active.lane.mask.v4i32.i32(i32 %IV, i32 %TC)
|
||||
%res = call <4 x i32> @llvm.get.active.lane.mask.v4i32.i32(i32 %IV, i32 %BTC)
|
||||
ret <4 x i32> %res
|
||||
}
|
||||
|
||||
define i32 @t2(i32 %IV, i32 %TC) {
|
||||
declare i32 @llvm.get.active.lane.mask.i32.i32(i32, i32)
|
||||
|
||||
define i32 @t2(i32 %IV, i32 %BTC) {
|
||||
; CHECK: Intrinsic has incorrect return type!
|
||||
; CHECK-NEXT: i32 (i32, i32)* @llvm.get.active.lane.mask.i32.i32
|
||||
|
||||
%res = call i32 @llvm.get.active.lane.mask.i32.i32(i32 %IV, i32 %TC)
|
||||
%res = call i32 @llvm.get.active.lane.mask.i32.i32(i32 %IV, i32 %BTC)
|
||||
ret i32 %res
|
||||
}
|
||||
|
||||
define <4 x i1> @t3(i32 %IV) {
|
||||
; CHECK: get_active_lane_mask: operand #2 must be greater than 0
|
||||
; CHECK-NEXT: %res = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %IV, i32 0)
|
||||
|
||||
%res = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %IV, i32 0)
|
||||
ret <4 x i1> %res
|
||||
}
|
||||
|
||||
define <4 x i1> @t4(i32 %IV) {
|
||||
; CHECK-NOT: get_active_lane_mask
|
||||
; CHECK-NOT: call <4 x i1> @llvm.get.active.lane.mask
|
||||
|
||||
%res = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %IV, i32 1)
|
||||
ret <4 x i1> %res
|
||||
}
|
||||
|
||||
define <4 x i1> @t5(i32 %IV) {
|
||||
; CHECK-NOT: get_active_lane_mask
|
||||
; CHECK-NOT: call <4 x i1> @llvm.get.active.lane.mask
|
||||
|
||||
%res = call <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32 %IV, i32 -1)
|
||||
ret <4 x i1> %res
|
||||
}
|
||||
|
||||
declare <4 x i32> @llvm.get.active.lane.mask.v4i32.i32(i32, i32)
|
||||
declare i32 @llvm.get.active.lane.mask.i32.i32(i32, i32)
|
||||
declare <4 x i1> @llvm.get.active.lane.mask.v4i1.i32(i32, i32)
|
||||
|
Loading…
Reference in New Issue
Block a user