brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · ba2dbfb Raw
44 lines · plain
1; RUN: llc -mattr=+hvxv60,hvx-length64b -mtriple=hexagon -O2 < %s | FileCheck %s2 3; CHECK-LABEL: V6_vmaskedstoreq4; CHECK: if (q{{[0-3]+}}) vmem(r{{[0-9]+}}+#0) = v{{[0-9]+}}5 6; CHECK-LABEL: V6_vmaskedstorenq7; CHECK: if (!q{{[0-3]+}}) vmem(r{{[0-9]+}}+#0) = v{{[0-9]+}}8 9; CHECK-LABEL: V6_vmaskedstorentq10; CHECK: if (q{{[0-3]+}}) vmem(r{{[0-9]+}}+#0):nt = v{{[0-9]+}}11 12; CHECK-LABEL: V6_vmaskedstorentnq13; CHECK: if (!q{{[0-3]+}}) vmem(r{{[0-9]+}}+#0):nt = v{{[0-9]+}}14 15declare <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32>, i32)16 17declare void @llvm.hexagon.V6.vmaskedstoreq(<64 x i1>, ptr, <16 x i32>)18define void @V6_vmaskedstoreq( <16 x i32> %a, ptr %b, <16 x i32> %c) {19  %1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %a, i32 -1)20  call void @llvm.hexagon.V6.vmaskedstoreq(<64 x i1> %1, ptr %b, <16 x i32> %c)21  ret void22}23 24declare void @llvm.hexagon.V6.vmaskedstorenq(<64 x i1>, ptr, <16 x i32>)25define void @V6_vmaskedstorenq( <16 x i32> %a, ptr %b, <16 x i32> %c) {26  %1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %a, i32 -1)27  call void @llvm.hexagon.V6.vmaskedstorenq(<64 x i1> %1, ptr %b, <16 x i32> %c)28  ret void29}30 31declare void @llvm.hexagon.V6.vmaskedstorentq(<64 x i1>, ptr, <16 x i32>)32define void @V6_vmaskedstorentq( <16 x i32> %a, ptr %b, <16 x i32> %c) {33  %1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %a, i32 -1)34  call void @llvm.hexagon.V6.vmaskedstorentq(<64 x i1> %1, ptr %b, <16 x i32> %c)35  ret void36}37 38declare void @llvm.hexagon.V6.vmaskedstorentnq(<64 x i1>, ptr, <16 x i32>)39define void @V6_vmaskedstorentnq( <16 x i32> %a, ptr %b, <16 x i32> %c) {40  %1 = tail call <64 x i1> @llvm.hexagon.V6.vandvrt(<16 x i32> %a, i32 -1)41  call void @llvm.hexagon.V6.vmaskedstorentnq(<64 x i1> %1, ptr %b, <16 x i32> %c)42  ret void43}44