brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · 6752b11 Raw
66 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sme2 -force-streaming < %s | FileCheck %s3 4; lookup table expand one register5 6define <vscale x 16 x i8> @luti2_i8(<vscale x 16 x i8> %x) {7; CHECK-LABEL: luti2_i8:8; CHECK:       // %bb.0:9; CHECK-NEXT:    luti2 z0.b, zt0, z0[15]10; CHECK-NEXT:    ret11    %res = call <vscale x 16 x i8> @llvm.aarch64.sme.luti2.lane.zt.nxv16i8(i32 0, <vscale x 16 x i8> %x, i32 15)12    ret <vscale x 16 x i8> %res13}14 15define <vscale x 8 x i16> @luti2_i16(<vscale x 16 x i8> %x) {16; CHECK-LABEL: luti2_i16:17; CHECK:       // %bb.0:18; CHECK-NEXT:    luti2 z0.h, zt0, z0[15]19; CHECK-NEXT:    ret20    %res = call <vscale x 8 x i16> @llvm.aarch64.sme.luti2.lane.zt.nxv8i16(i32 0, <vscale x 16 x i8> %x, i32 15)21    ret <vscale x 8 x i16> %res22}23 24define <vscale x 4 x i32> @luti2_i32(<vscale x 16 x i8> %x) {25; CHECK-LABEL: luti2_i32:26; CHECK:       // %bb.0:27; CHECK-NEXT:    luti2 z0.s, zt0, z0[15]28; CHECK-NEXT:    ret29    %res = call <vscale x 4 x i32> @llvm.aarch64.sme.luti2.lane.zt.nxv4i32(i32 0, <vscale x 16 x i8> %x, i32 15)30    ret <vscale x 4 x i32> %res31}32 33define <vscale x 8 x half> @luti2_f16(<vscale x 16 x i8> %x) {34; CHECK-LABEL: luti2_f16:35; CHECK:       // %bb.0:36; CHECK-NEXT:    luti2 z0.h, zt0, z0[15]37; CHECK-NEXT:    ret38    %res = call <vscale x 8 x half> @llvm.aarch64.sme.luti2.lane.zt.nxv8f16(i32 0, <vscale x 16 x i8> %x, i32 15)39    ret <vscale x 8 x half> %res40}41 42define <vscale x 8 x bfloat> @luti2_bf16(<vscale x 16 x i8> %x) {43; CHECK-LABEL: luti2_bf16:44; CHECK:       // %bb.0:45; CHECK-NEXT:    luti2 z0.h, zt0, z0[15]46; CHECK-NEXT:    ret47    %res = call <vscale x 8 x bfloat> @llvm.aarch64.sme.luti2.lane.zt.nxv8bf16(i32 0, <vscale x 16 x i8> %x, i32 15)48    ret <vscale x 8 x bfloat> %res49}50 51define <vscale x 4 x float> @luti2_f32(<vscale x 16 x i8> %x) {52; CHECK-LABEL: luti2_f32:53; CHECK:       // %bb.0:54; CHECK-NEXT:    luti2 z0.s, zt0, z0[15]55; CHECK-NEXT:    ret56    %res = call <vscale x 4 x float> @llvm.aarch64.sme.luti2.lane.zt.nxv4f32(i32 0, <vscale x 16 x i8> %x, i32 15)57    ret <vscale x 4 x float> %res58}59 60declare <vscale x 16 x i8> @llvm.aarch64.sme.luti2.lane.zt.nxv16i8(i32, <vscale x 16 x i8>, i32)61declare <vscale x 8 x i16> @llvm.aarch64.sme.luti2.lane.zt.nxv8i16(i32, <vscale x 16 x i8>, i32)62declare <vscale x 4 x i32> @llvm.aarch64.sme.luti2.lane.zt.nxv4i32(i32, <vscale x 16 x i8>, i32)63declare <vscale x 8 x half> @llvm.aarch64.sme.luti2.lane.zt.nxv8f16(i32, <vscale x 16 x i8>, i32)64declare <vscale x 8 x bfloat> @llvm.aarch64.sme.luti2.lane.zt.nxv8bf16(i32, <vscale x 16 x i8>, i32)65declare <vscale x 4 x float> @llvm.aarch64.sme.luti2.lane.zt.nxv4f32(i32, <vscale x 16 x i8>, i32)66