brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · a45f373 Raw
24 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -mtriple=aarch64 -passes='require<profile-summary>,function(codegenprepare)' -S < %s | FileCheck %s3 4; This test intends to check vector promotion for scalable vector. Current target lowering5; rejects scalable vector before reaching getConstantVector() in CodeGenPrepare. This test6; will assert once target lowering is ready, then we can bring in implementation for non-splat7; codepath for scalable vector.8 9define void @simpleOneInstructionPromotion(ptr %addr1, ptr %dest) {10; CHECK-LABEL: @simpleOneInstructionPromotion(11; CHECK-NEXT:    [[IN1:%.*]] = load <vscale x 2 x i32>, ptr [[ADDR1:%.*]], align 812; CHECK-NEXT:    [[EXTRACT:%.*]] = extractelement <vscale x 2 x i32> [[IN1]], i32 113; CHECK-NEXT:    [[OUT:%.*]] = or i32 [[EXTRACT]], 114; CHECK-NEXT:    store i32 [[OUT]], ptr [[DEST:%.*]], align 415; CHECK-NEXT:    ret void16;17  %in1 = load <vscale x 2 x i32>, ptr %addr1, align 818  %extract = extractelement <vscale x 2 x i32> %in1, i32 119  %out = or i32 %extract, 120  store i32 %out, ptr %dest, align 421  ret void22}23 24