brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 5700380 Raw
28 lines · plain
1; REQUIRES: hexagon-registered-target2; RUN: llc -march=hexagon -mcpu=hexagonv73 -mattr=+hvxv73,+hvx-length128b < %s | FileCheck %s3 4target triple = "hexagon"5 6@VTCM_SCATTER16_ADDRESS = dso_local global i32 0, align 47@region_len = dso_local global i32 16383, align 48 9; CHECK: [[ADR:r[0-9]+]] = memw(gp+#VTCM_SCATTER16_ADDRESS)10; CHECK: vtmp.h = vgather([[ADR]],m0,v0.h).h11; CHECK: vmem(r0+#0) = vtmp.new12 13define dso_local void @vector_gather_16(ptr noundef %vgather, <32 x i32> noundef %offsets) #0 {14entry:15  %vgather.addr = alloca ptr, align 416  %offsets.addr = alloca <32 x i32>, align 12817  store ptr %vgather, ptr %vgather.addr, align 418  store <32 x i32> %offsets, ptr %offsets.addr, align 12819  %0 = load ptr, ptr %vgather.addr, align 420  %1 = load i32, ptr @VTCM_SCATTER16_ADDRESS, align 421  %2 = load i32, ptr @region_len, align 422  %3 = load <32 x i32>, ptr %offsets.addr, align 12823  call void @llvm.hexagon.V6.vgathermh.128B(ptr %0, i32 %1, i32 %2, <32 x i32> %3)24  ret void25}26 27declare <128 x i1> @llvm.hexagon.V6.vandvrt.128B(<32 x i32>, i32)28