brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · c5f9dc1 Raw
40 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4%foo = type { i16, i16, i16 }5 6define <16 x ptr> @test(i1 %tobool) {7; CHECK-LABEL: define <16 x ptr> @test(8; CHECK-SAME: i1 [[TOBOOL:%.*]]) {9; CHECK-NEXT:  [[ENTRY:.*:]]10; CHECK-NEXT:    [[LANE_0:%.*]] = alloca [[FOO:%.*]], align 1611; CHECK-NEXT:    [[LANE_15:%.*]] = insertelement <16 x ptr> poison, ptr [[LANE_0]], i64 012; CHECK-NEXT:    br i1 [[TOBOOL]], label %[[F1:.*]], label %[[F0:.*]]13; CHECK:       [[F0]]:14; CHECK-NEXT:    [[MM_VECTORGEP1:%.*]] = getelementptr inbounds i8, <16 x ptr> [[LANE_15]], i64 215; CHECK-NEXT:    br label %[[MERGE:.*]]16; CHECK:       [[F1]]:17; CHECK-NEXT:    [[MM_VECTORGEP22:%.*]] = getelementptr inbounds i8, <16 x ptr> [[LANE_15]], i64 418; CHECK-NEXT:    br label %[[MERGE]]19; CHECK:       [[MERGE]]:20; CHECK-NEXT:    [[VEC_PHI:%.*]] = phi <16 x ptr> [ [[MM_VECTORGEP1]], %[[F0]] ], [ [[MM_VECTORGEP22]], %[[F1]] ]21; CHECK-NEXT:    ret <16 x ptr> [[VEC_PHI]]22;23entry:24  %lane.0 = alloca %foo, align 1625  %lane.15 = insertelement <16 x ptr> poison, ptr %lane.0, i64 026  %mm_vectorGEP = getelementptr inbounds %foo, <16 x ptr> %lane.15, <16 x i64> zeroinitializer, <16 x i32> splat (i32 1)27  %mm_vectorGEP2 = getelementptr inbounds %foo, <16 x ptr> %lane.15, <16 x i64> zeroinitializer, <16 x i32> splat (i32 2)28  br i1 %tobool, label %f1, label %f029 30f0:31  br label %merge32 33f1:34  br label %merge35 36merge:37  %vec.phi = phi <16 x ptr> [ %mm_vectorGEP, %f0], [ %mm_vectorGEP2, %f1 ]38  ret <16 x ptr> %vec.phi39}40