//=- SPIRVCombine.td - Define SPIRV Combine Rules -------------*-tablegen -*-=// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // include "llvm/Target/GlobalISel/Combine.td" def vector_length_sub_to_distance_lowering : GICombineRule < (defs root:$root), (match (wip_match_opcode G_INTRINSIC):$root, [{ return matchLengthToDistance(*${root}, MRI); }]), (apply [{ applySPIRVDistance(*${root}, MRI, B); }]) >; def SPIRVPreLegalizerCombiner : GICombiner<"SPIRVPreLegalizerCombinerImpl", [vector_length_sub_to_distance_lowering]> { let CombineAllMethodName = "tryCombineAllImpl"; }