File tree Expand file tree Collapse file tree 1 file changed +15
-0
lines changed
llvm/test/Transforms/InstSimplify Expand file tree Collapse file tree 1 file changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -232,6 +232,21 @@ define i1 @mul_nuw_nonzero_rhs_monotonic(i8 %x, i8 %c) {
232232 ret i1 %cmp
233233}
234234
235+ define i1 @mul_nuw_nonzero_rhs_commuted_monotonic (i8 %x , i8 %c ) {
236+ ; CHECK-LABEL: define i1 @mul_nuw_nonzero_rhs_commuted_monotonic(
237+ ; CHECK-SAME: i8 [[X:%.*]], i8 [[C:%.*]]) {
238+ ; CHECK-NEXT: [[C_NONZERO:%.*]] = icmp ne i8 [[C]], 0
239+ ; CHECK-NEXT: call void @llvm.assume(i1 [[C_NONZERO]])
240+ ; CHECK-NEXT: ret i1 true
241+ ;
242+ %c_nonzero = icmp ne i8 %c , 0
243+ call void @llvm.assume (i1 %c_nonzero )
244+
245+ %prod = mul nuw i8 %c , %x
246+ %cmp = icmp uge i8 %prod , %x
247+ ret i1 %cmp
248+ }
249+
235250define i1 @mul_nuw_nonzero_rhs_monotonic_inverse_predicate (i8 %x , i8 %c ) {
236251; CHECK-LABEL: define i1 @mul_nuw_nonzero_rhs_monotonic_inverse_predicate(
237252; CHECK-SAME: i8 [[X:%.*]], i8 [[C:%.*]]) {
You can’t perform that action at this time.
0 commit comments