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