20 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 52; RUN: opt -disable-output -passes='print<scalar-evolution>' < %s 2>&1 | FileCheck %s3 4define i32 @pr135511(i32 %x) {5; CHECK-LABEL: 'pr135511'6; CHECK-NEXT: Classifying expressions for: @pr1355117; CHECK-NEXT: %and = and i32 %x, 163828; CHECK-NEXT: --> (2 * (zext i13 (trunc i32 (%x /u 2) to i13) to i32))<nuw><nsw> U: [0,16383) S: [0,16383)9; CHECK-NEXT: %neg = sub nsw i32 0, %and10; CHECK-NEXT: --> (-2 * (zext i13 (trunc i32 (%x /u 2) to i13) to i32))<nsw> U: [0,-1) S: [-16382,1)11; CHECK-NEXT: %res = and i32 %neg, 26843136012; CHECK-NEXT: --> (4096 * (zext i16 (trunc i32 ((-1 * (zext i13 (trunc i32 (%x /u 2) to i13) to i32))<nsw> /u 2048) to i16) to i32))<nuw><nsw> U: [0,268431361) S: [0,268431361)13; CHECK-NEXT: Determining loop execution counts for: @pr13551114;15 %and = and i32 %x, 1638216 %neg = sub nsw i32 0, %and17 %res = and i32 %neg, 26843136018 ret i32 %res19}20