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