annotate llvm/test/TableGen/GlobalISelEmitter-PR39045.td @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 1d019706d866
children 1f2b6ac9f198
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: llvm-tblgen -gen-global-isel -I %p/../../include -I %p/Common %s -o %t
anatofuz
parents:
diff changeset
2 // RUN: FileCheck %s < %t
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 // Both predicates should be tested
anatofuz
parents:
diff changeset
5 // CHECK-DAG: GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIPFP_MI_Predicate_pat_frag_b,
anatofuz
parents:
diff changeset
6 // CHECK-DAG: GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIPFP_MI_Predicate_pat_frag_a,
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 include "llvm/Target/Target.td"
anatofuz
parents:
diff changeset
9 include "GlobalISelEmitterCommon.td"
anatofuz
parents:
diff changeset
10
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 def pat_frag_a : PatFrag <(ops node:$ptr), (load node:$ptr), [{}]> {
anatofuz
parents:
diff changeset
13 let PredicateCode = [{ return isInstA(MI); }];
anatofuz
parents:
diff changeset
14 let GISelPredicateCode = [{ return isInstA(MI); }];
anatofuz
parents:
diff changeset
15 }
anatofuz
parents:
diff changeset
16
anatofuz
parents:
diff changeset
17 def pat_frag_b : PatFrag <(ops node:$ptr), (load node:$ptr), [{}]> {
anatofuz
parents:
diff changeset
18 let PredicateCode = [{ return isInstB(MI); }];
anatofuz
parents:
diff changeset
19 let GISelPredicateCode = [{ return isInstB(MI); }];
anatofuz
parents:
diff changeset
20 }
anatofuz
parents:
diff changeset
21
anatofuz
parents:
diff changeset
22 def inst_a : Instruction {
anatofuz
parents:
diff changeset
23 let OutOperandList = (outs GPR32:$dst);
anatofuz
parents:
diff changeset
24 let InOperandList = (ins GPR32:$src);
anatofuz
parents:
diff changeset
25 }
anatofuz
parents:
diff changeset
26 def inst_b : Instruction {
anatofuz
parents:
diff changeset
27 let OutOperandList = (outs GPR32:$dst);
anatofuz
parents:
diff changeset
28 let InOperandList = (ins GPR32:$src);
anatofuz
parents:
diff changeset
29 }
anatofuz
parents:
diff changeset
30
anatofuz
parents:
diff changeset
31 def : Pat <
anatofuz
parents:
diff changeset
32 (pat_frag_a GPR32:$src),
anatofuz
parents:
diff changeset
33 (inst_a GPR32:$src)
anatofuz
parents:
diff changeset
34 >;
anatofuz
parents:
diff changeset
35
anatofuz
parents:
diff changeset
36 def : Pat <
anatofuz
parents:
diff changeset
37 (pat_frag_b GPR32:$src),
anatofuz
parents:
diff changeset
38 (inst_b GPR32:$src)
anatofuz
parents:
diff changeset
39 >;
anatofuz
parents:
diff changeset
40