//===-- AMDGPUPredicateControl.td --------------------------*- 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 // //===----------------------------------------------------------------------===// def TruePredicate : Predicate<"">; // FIXME: Tablegen should specially supports this def FalsePredicate : Predicate<"false">; // Prevent using other kinds of predicates where True16 predicates are // expected by giving them their own class. class True16PredicateClass : Predicate; def NoTrue16Predicate : True16PredicateClass<"">; class PredicateControl { Predicate SubtargetPredicate = TruePredicate; Predicate AssemblerPredicate = TruePredicate; Predicate WaveSizePredicate = TruePredicate; True16PredicateClass True16Predicate = NoTrue16Predicate; list OtherPredicates = []; list Predicates = !foldl(OtherPredicates, [SubtargetPredicate, AssemblerPredicate, WaveSizePredicate, True16Predicate], preds, p, preds # !listremove([p], [TruePredicate, NoTrue16Predicate] # preds)); }