blob: bc510d4c4fd48f2782353329eac0c7764d733572 [file] [edit]
; RUN: llc -mtriple=hexagon -mcpu=hexagonv68 -mattr=+hvx-length128b < %s | FileCheck %s
; Add patterns to lower vselect q, q, q.
; CHECK-LABEL: vselect_v32i1
; CHECK-DAG: q[[Q1:[0-9]+]] = and(q{{[0-9]+}},!q{{[0-9]+}})
; CHECK-DAG: q[[Q2:[0-9]+]] = and(q{{[0-9]+}},q{{[0-9]+}})
; CHECK: q{{[0-9]+}} = or(q[[Q2]],q[[Q1]])
define <32 x i1> @vselect_v32i1(<32 x i1> %f, <32 x i1> %cond, <32 x i1> %t) #0 {
entry:
%sel = select <32 x i1> %cond, <32 x i1> %t, <32 x i1> %f
ret <32 x i1> %sel
}
; CHECK-LABEL: vselect_v64i1
; CHECK-DAG: q[[Q3:[0-9]+]] = and(q{{[0-9]+}},!q{{[0-9]+}})
; CHECK-DAG: q[[Q4:[0-9]+]] = and(q{{[0-9]+}},q{{[0-9]+}})
; CHECK: q{{[0-9]+}} = or(q[[Q4]],q[[Q3]])
define <64 x i1> @vselect_v64i1(<64 x i1> %f, <64 x i1> %cond, <64 x i1> %t) #0 {
entry:
%sel = select <64 x i1> %cond, <64 x i1> %t, <64 x i1> %f
ret <64 x i1> %sel
}
attributes #0 = { "target-cpu"="hexagonv68" "target-features"="+hvx-length128b" }