53 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2; RUN: llc -O0 -mtriple=aarch64-linux-gnu -global-isel -stop-after=irtranslator %s -o - | FileCheck %s3 4define i64 @call_vscale_i64() {5 ; CHECK-LABEL: name: call_vscale_i646 ; CHECK: bb.1.entry:7 ; CHECK-NEXT: [[VSCALE:%[0-9]+]]:_(s64) = G_VSCALE i64 18 ; CHECK-NEXT: $x0 = COPY [[VSCALE]](s64)9 ; CHECK-NEXT: RET_ReallyLR implicit $x010entry:11 %vscale = call i64 @llvm.vscale.64()12 ret i64 %vscale13}14 15define i64 @call_vscale_i32() {16 ; CHECK-LABEL: name: call_vscale_i3217 ; CHECK: bb.1.entry:18 ; CHECK-NEXT: [[VSCALE:%[0-9]+]]:_(s32) = G_VSCALE i32 119 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[VSCALE]](s32)20 ; CHECK-NEXT: $x0 = COPY [[ZEXT]](s64)21 ; CHECK-NEXT: RET_ReallyLR implicit $x022entry:23 %vscale = call i32 @llvm.vscale.32()24 %zext = zext i32 %vscale to i6425 ret i64 %zext26}27 28define i64 @call_vscale_i16() {29 ; CHECK-LABEL: name: call_vscale_i1630 ; CHECK: bb.1.entry:31 ; CHECK-NEXT: [[VSCALE:%[0-9]+]]:_(s16) = G_VSCALE i16 132 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[VSCALE]](s16)33 ; CHECK-NEXT: $x0 = COPY [[ZEXT]](s64)34 ; CHECK-NEXT: RET_ReallyLR implicit $x035entry:36 %vscale = call i16 @llvm.vscale.16()37 %zext = zext i16 %vscale to i6438 ret i64 %zext39}40 41define i64 @call_vscale_i8() {42 ; CHECK-LABEL: name: call_vscale_i843 ; CHECK: bb.1.entry:44 ; CHECK-NEXT: [[VSCALE:%[0-9]+]]:_(s8) = G_VSCALE i8 145 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[VSCALE]](s8)46 ; CHECK-NEXT: $x0 = COPY [[ZEXT]](s64)47 ; CHECK-NEXT: RET_ReallyLR implicit $x048entry:49 %vscale = call i8 @llvm.vscale.8()50 %zext = zext i8 %vscale to i6451 ret i64 %zext52}53