brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · c934077 Raw
25 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt %s -passes="function(scalarizer)" -S | FileCheck %s3 4define <3 x i32> @test_(<3 x i32> %a, <3 x i32> %b) {5; CHECK-LABEL: define <3 x i32> @test_(6; CHECK-SAME: <3 x i32> [[A:%.*]], <3 x i32> [[B:%.*]]) {7; CHECK-NEXT:    [[B_I0:%.*]] = extractelement <3 x i32> [[B]], i64 08; CHECK-NEXT:    [[R_I0:%.*]] = call { i32, i1 } @llvm.smul.with.overflow.i32(i32 [[B_I0]], i32 [[B_I0]])9; CHECK-NEXT:    [[B_I1:%.*]] = extractelement <3 x i32> [[B]], i64 110; CHECK-NEXT:    [[R_I1:%.*]] = call { i32, i1 } @llvm.smul.with.overflow.i32(i32 [[B_I1]], i32 [[B_I1]])11; CHECK-NEXT:    [[B_I2:%.*]] = extractelement <3 x i32> [[B]], i64 212; CHECK-NEXT:    [[R_I2:%.*]] = call { i32, i1 } @llvm.smul.with.overflow.i32(i32 [[B_I2]], i32 [[B_I2]])13; CHECK-NEXT:    [[EL_ELEM0:%.*]] = extractvalue { i32, i1 } [[R_I0]], 014; CHECK-NEXT:    [[EL_ELEM01:%.*]] = extractvalue { i32, i1 } [[R_I1]], 015; CHECK-NEXT:    [[EL_ELEM02:%.*]] = extractvalue { i32, i1 } [[R_I2]], 016; CHECK-NEXT:    [[EL_UPTO0:%.*]] = insertelement <3 x i32> poison, i32 [[EL_ELEM0]], i64 017; CHECK-NEXT:    [[EL_UPTO1:%.*]] = insertelement <3 x i32> [[EL_UPTO0]], i32 [[EL_ELEM01]], i64 118; CHECK-NEXT:    [[EL:%.*]] = insertelement <3 x i32> [[EL_UPTO1]], i32 [[EL_ELEM02]], i64 219; CHECK-NEXT:    ret <3 x i32> [[EL]]20;21  %r = call { <3 x i32>, <3 x i1> } @llvm.smul.with.overflow.v3i32(<3 x i32> %b, <3 x i32> %b)22  %el = extractvalue { <3 x i32>, <3 x i1> } %r, 023  ret <3 x i32> %el24}25