brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 5f23d12 Raw
44 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 22; RUN: opt < %s -passes=sccp -S | FileCheck %s3 4; Test that SCCP has basic knowledge of when div can nuke overdefined values.5 6; 0 / X = 0 even if X is overdefined.7define i32 @test1(i32 %foo) {8; CHECK-LABEL: define i32 @test19; CHECK-SAME: (i32 [[FOO:%.*]]) {10; CHECK-NEXT:    ret i32 011;12  %tinkywinky = udiv i32 0, %foo13  ret i32 %tinkywinky14}15 16define i32 @test2(i32 %foo) {17; CHECK-LABEL: define i32 @test218; CHECK-SAME: (i32 [[FOO:%.*]]) {19; CHECK-NEXT:    ret i32 020;21  %tinkywinky = sdiv i32 0, %foo22  ret i32 %tinkywinky23}24 25define i32 @test3(i32 %foo) {26; CHECK-LABEL: define i32 @test327; CHECK-SAME: (i32 [[FOO:%.*]]) {28; CHECK-NEXT:    [[TINKYWINKY:%.*]] = udiv i32 [[FOO]], 029; CHECK-NEXT:    ret i32 [[TINKYWINKY]]30;31  %tinkywinky = udiv i32 %foo, 032  ret i32 %tinkywinky33}34 35define i32 @test4(i32 %foo) {36; CHECK-LABEL: define i32 @test437; CHECK-SAME: (i32 [[FOO:%.*]]) {38; CHECK-NEXT:    [[TINKYWINKY:%.*]] = sdiv i32 [[FOO]], 039; CHECK-NEXT:    ret i32 [[TINKYWINKY]]40;41  %tinkywinky = sdiv i32 %foo, 042  ret i32 %tinkywinky43}44