brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 11af2c2 Raw
35 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 22; RUN: opt -passes="print<cost-model>" -cost-kind=all 2>&1 -disable-output -mtriple=aarch64--linux-gnu -mattr=+sve < %s | FileCheck %s3 4; This regression test is verifying that a GEP instruction performed on a5; scalable vector does not produce a 'assumption that TypeSize is not scalable'6; warning when performing cost analysis.7 8target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"9 10define void @gep_scalable_types(ptr %ptr) {11; CHECK-LABEL: 'gep_scalable_types'12; CHECK-NEXT:  Cost Model: Found costs of 1 for: %gep1 = getelementptr <vscale x 16 x i8>, ptr %ptr, i32 213; CHECK-NEXT:  Cost Model: Found costs of 1 for: %gep2 = getelementptr [2 x <vscale x 16 x i8>], ptr %ptr, i32 214; CHECK-NEXT:  Cost Model: Found costs of 1 for: %gep3 = getelementptr target("aarch64.svcount"), ptr %ptr, i32 215; CHECK-NEXT:  Cost Model: Found costs of 1 for: %gep4 = getelementptr [2 x target("aarch64.svcount")], ptr %ptr, i32 216; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void17;18  %gep1 = getelementptr <vscale x 16 x i8>, ptr %ptr, i32 219  %gep2 = getelementptr [2 x <vscale x 16 x i8>], ptr %ptr, i32 220  %gep3 = getelementptr target("aarch64.svcount"), ptr %ptr, i32 221  %gep4 = getelementptr [2 x target("aarch64.svcount")], ptr %ptr, i32 222  ret void23}24 25define ptr @sext_gep(ptr %p, i32 %a) {26; CHECK-LABEL: 'sext_gep'27; CHECK-NEXT:  Cost Model: Found costs of 1 for: %b = sext i32 %a to i6428; CHECK-NEXT:  Cost Model: Found costs of 1 for: %r = getelementptr <vscale x 8 x half>, ptr %p, i64 %b29; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret ptr %r30;31  %b = sext i32 %a to i6432  %r = getelementptr <vscale x 8 x half>, ptr %p, i64 %b33  ret ptr %r34}35