brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 9284db2 Raw
43 lines · plain
1; RUN: opt -disable-output "-passes=print<scalar-evolution>" -S < %s 2>&1 | FileCheck %s2 3define i64 @test1(i32 %a, i32 %b) {4; CHECK-LABEL: @test15  %div = udiv i32 %a, %b6  %zext = zext i32 %div to i647; CHECK: %zext8; CHECK-NEXT: -->  ((zext i32 %a to i64) /u (zext i32 %b to i64))9  ret i64 %zext10}11 12define i64 @test2(i32 %a, i32 %b) {13; CHECK-LABEL: @test214  %rem = urem i32 %a, %b15  %zext = zext i32 %rem to i6416; CHECK: %zext17; CHECK-NEXT: -->  ((zext i32 %a to i64) + (-1 * (zext i32 %b to i64) * ((zext i32 %a to i64) /u (zext i32 %b to i64))))18  ret i64 %zext19}20 21define i64 @test3(i32 %a, i32 %b) {22; CHECK-LABEL: @test323  %div = udiv i32 %a, %b24  %mul = mul i32 %div, %b25  %sub = sub i32 %a, %mul26  %zext = zext i32 %sub to i6427; CHECK: %zext28; CHECK-NEXT: -->  ((zext i32 %a to i64) + (-1 * (zext i32 %b to i64) * ((zext i32 %a to i64) /u (zext i32 %b to i64))))29  ret i64 %zext30}31 32define i64 @test4(i32 %t) {33; CHECK-LABEL: @test434  %a = udiv i32 %t, 235  %div = udiv i32 %t, 11236  %mul = mul i32 %div, 5637  %sub = sub i32 %a, %mul38  %zext = zext i32 %sub to i6439; CHECK: %zext40; CHECK-NEXT: -->  ((-56 * ((zext i32 %t to i64) /u 112))<nsw> + ((zext i32 %t to i64) /u 2))41  ret i64 %zext42}43