brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 970ec81 Raw
68 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=newgvn -S | FileCheck %s3 4define i32 @main() {5; CHECK-LABEL: @main(6; CHECK-NEXT:  block1:7; CHECK-NEXT:    br label [[BLOCK2:%.*]]8; CHECK:       block2:9; CHECK-NEXT:    ret i32 010;11block1:12  %z1 = bitcast i32 0 to i3213  br label %block214block2:15  %z2 = bitcast i32 0 to i3216  ret i32 %z217}18 19; Test that we simplify selects properly20define i64 @simplifyselect(i64 %x, i64 %y, i1 %c1, i1 %c2, i1 %zzz) {21; CHECK-LABEL: @simplifyselect(22; CHECK-NEXT:    [[SHARED:%.*]] = add i64 [[X:%.*]], [[Y:%.*]]23; CHECK-NEXT:    [[R1:%.*]] = select i1 [[C1:%.*]], i64 [[SHARED]], i64 [[X]]24; CHECK-NEXT:    [[R2:%.*]] = select i1 [[C2:%.*]], i64 [[SHARED]], i64 [[Y]]25; CHECK-NEXT:    [[R:%.*]] = add i64 [[R1]], [[R2]]26; CHECK-NEXT:    ret i64 [[R]]27;28  %shared = add i64 %x, %y29  %r1 = select i1 %c1, i64 %shared, i64 %x30  %r2 = select i1 %c2, i64 %shared, i64 %y31  %tmp = select i1 %c2, i64 %x, i64 032  %r2_eq2 = select i1 %zzz, i64 %r2, i64 %r233  %r = add i64 %r1, %r2_eq234  ret i64 %r35}36 37define i8 @simplify_add_poison(i8 %x) {38; CHECK-LABEL: @simplify_add_poison(39; CHECK-NEXT:    ret i8 poison40;41  %r = add i8 poison, %x42  ret i8 %r43}44 45define i8 @simplify_xor_poison(i8 %x) {46; CHECK-LABEL: @simplify_xor_poison(47; CHECK-NEXT:    ret i8 poison48;49  %r = xor i8 poison, %x50  ret i8 %r51}52 53define i8 @simplify_sdiv_poison(i8 %x) {54; CHECK-LABEL: @simplify_sdiv_poison(55; CHECK-NEXT:    ret i8 poison56;57  %r = sdiv i8 poison, %x58  ret i8 %r59}60 61define i8 @simplify_urem_poison(i8 %x) {62; CHECK-LABEL: @simplify_urem_poison(63; CHECK-NEXT:    ret i8 poison64;65  %r = urem i8 %x, poison66  ret i8 %r67}68