brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 151db29 Raw
28 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4@c = external constant i85@c2 = external constant i86 7define i64 @testfunc() {8; CHECK-LABEL: @testfunc(9; CHECK-NEXT:    [[SHL1:%.*]] = shl nuw i64 1, ptrtoint (ptr @c2 to i64)10; CHECK-NEXT:    [[SHL2:%.*]] = shl i64 [[SHL1]], ptrtoint (ptr @c to i64)11; CHECK-NEXT:    ret i64 [[SHL2]]12;13  %shl1 = shl i64 1, ptrtoint (ptr @c2 to i64)14  %shl2 = shl i64 %shl1, ptrtoint (ptr @c to i64)15  ret i64 %shl216}17 18define <vscale x 1 x i64> @scalable() {19; CHECK-LABEL: @scalable(20; CHECK-NEXT:    [[SHL1:%.*]] = shl nuw <vscale x 1 x i64> splat (i64 1), shufflevector (<vscale x 1 x i64> insertelement (<vscale x 1 x i64> poison, i64 ptrtoint (ptr @c2 to i64), i64 0), <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer)21; CHECK-NEXT:    [[SHL2:%.*]] = shl <vscale x 1 x i64> [[SHL1]], shufflevector (<vscale x 1 x i64> insertelement (<vscale x 1 x i64> poison, i64 ptrtoint (ptr @c to i64), i64 0), <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer)22; CHECK-NEXT:    ret <vscale x 1 x i64> [[SHL2]]23;24  %shl1 = shl <vscale x 1 x i64> splat (i64 1), splat (i64 ptrtoint (ptr @c2 to i64))25  %shl2 = shl <vscale x 1 x i64> %shl1, splat (i64 ptrtoint (ptr @c to i64))26  ret <vscale x 1 x i64> %shl227}28