Skip to content

Commit f233c12

Browse files
committed
[Intrinsics] Integer div/rem not speculatable
1 parent edeacf6 commit f233c12

File tree

1 file changed

+22
-20
lines changed

1 file changed

+22
-20
lines changed

llvm/include/llvm/IR/Intrinsics.td

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2039,26 +2039,6 @@ let IntrProperties = [IntrNoMem, IntrSpeculatable] in {
20392039
LLVMMatchType<0>,
20402040
LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>,
20412041
llvm_i32_ty]>;
2042-
def int_vp_sdiv : DefaultAttrsIntrinsic<[ llvm_anyvector_ty ],
2043-
[ LLVMMatchType<0>,
2044-
LLVMMatchType<0>,
2045-
LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>,
2046-
llvm_i32_ty]>;
2047-
def int_vp_udiv : DefaultAttrsIntrinsic<[ llvm_anyvector_ty ],
2048-
[ LLVMMatchType<0>,
2049-
LLVMMatchType<0>,
2050-
LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>,
2051-
llvm_i32_ty]>;
2052-
def int_vp_srem : DefaultAttrsIntrinsic<[ llvm_anyvector_ty ],
2053-
[ LLVMMatchType<0>,
2054-
LLVMMatchType<0>,
2055-
LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>,
2056-
llvm_i32_ty]>;
2057-
def int_vp_urem : DefaultAttrsIntrinsic<[ llvm_anyvector_ty ],
2058-
[ LLVMMatchType<0>,
2059-
LLVMMatchType<0>,
2060-
LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>,
2061-
llvm_i32_ty]>;
20622042
def int_vp_abs : DefaultAttrsIntrinsic<[ llvm_anyvector_ty ],
20632043
[ LLVMMatchType<0>,
20642044
llvm_i1_ty,
@@ -2390,6 +2370,28 @@ let IntrProperties = [IntrNoMem, IntrSpeculatable] in {
23902370
llvm_i32_ty]>;
23912371
}
23922372

2373+
// Integer VP division and remainder: not speculatable.
2374+
def int_vp_sdiv : DefaultAttrsIntrinsic<[ llvm_anyvector_ty ],
2375+
[ LLVMMatchType<0>,
2376+
LLVMMatchType<0>,
2377+
LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>,
2378+
llvm_i32_ty], [IntrNoMem]>;
2379+
def int_vp_udiv : DefaultAttrsIntrinsic<[ llvm_anyvector_ty ],
2380+
[ LLVMMatchType<0>,
2381+
LLVMMatchType<0>,
2382+
LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>,
2383+
llvm_i32_ty], [IntrNoMem]>;
2384+
def int_vp_srem : DefaultAttrsIntrinsic<[ llvm_anyvector_ty ],
2385+
[ LLVMMatchType<0>,
2386+
LLVMMatchType<0>,
2387+
LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>,
2388+
llvm_i32_ty], [IntrNoMem]>;
2389+
def int_vp_urem : DefaultAttrsIntrinsic<[ llvm_anyvector_ty ],
2390+
[ LLVMMatchType<0>,
2391+
LLVMMatchType<0>,
2392+
LLVMScalarOrSameVectorWidth<0, llvm_i1_ty>,
2393+
llvm_i32_ty], [IntrNoMem]>;
2394+
23932395
let IntrProperties = [IntrNoMem, IntrSpeculatable, ImmArg<ArgIndex<1>>] in {
23942396
def int_vp_ctlz : DefaultAttrsIntrinsic<[ llvm_anyvector_ty ],
23952397
[ LLVMMatchType<0>,

0 commit comments

Comments
 (0)