brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · d2d393e Raw
36 lines · plain
1; RUN: llc -mtriple=hexagon -mattr=+hvxv68,+hvx,+hvx-length128b < %s | FileCheck %s2 3; Test that the Qfloat optimization pass doesn't crash due to an invalid4; instructions.5 6; CHECK: v{{[0-9]+}}.hf = v{{[0-9]:[0-9]}}.qf327 8define void @test(9    <32 x i32>* %optr,10    <64 x i32> %in64,11    <32 x i32> %va,12    <32 x i32> %vb13) local_unnamed_addr #0 {14entry:15  br label %for.body16 17for.body:18  %optr.068 = phi <32 x i32>* [ %optr, %entry ], [ %incdec.ptr6, %for.body ]19  %0 = tail call <32 x i32> @llvm.hexagon.V6.vconv.hf.qf32.128B(<64 x i32> %in64) #220  %1 = tail call <32 x i32> @llvm.hexagon.V6.vdealh.128B(<32 x i32> %0) #221  %2 = tail call <128 x i1> @llvm.hexagon.V6.vgth.128B(<32 x i32> %va, <32 x i32> %1) #222  %3 = tail call <32 x i32> @llvm.hexagon.V6.vmux.128B(<128 x i1> %2, <32 x i32> %va, <32 x i32> %vb) #223  %4 = tail call <32 x i32> @llvm.hexagon.V6.vaddhsat.128B(<32 x i32> %3, <32 x i32> %vb) #224  %5 = tail call <32 x i32> @llvm.hexagon.V6.vpackhub.sat.128B(<32 x i32> %va, <32 x i32> %4) #225  store <32 x i32> %5, <32 x i32>* %optr.068, align 126  %incdec.ptr6 = getelementptr inbounds <32 x i32>, <32 x i32>* %optr.068, i32 127  br label %for.body28}29 30declare <32 x i32> @llvm.hexagon.V6.vdealh.128B(<32 x i32>) #131declare <32 x i32> @llvm.hexagon.V6.vconv.hf.qf32.128B(<64 x i32>) #132declare <32 x i32> @llvm.hexagon.V6.vaddhsat.128B(<32 x i32>, <32 x i32>) #133declare <32 x i32> @llvm.hexagon.V6.vpackhub.sat.128B(<32 x i32>, <32 x i32>) #134declare <128 x i1> @llvm.hexagon.V6.vgth.128B(<32 x i32>, <32 x i32>) #135declare <32 x i32> @llvm.hexagon.V6.vmux.128B(<128 x i1>, <32 x i32>, <32 x i32>) #136