llvm.org GIT mirror llvm / 184f8f7
[PowerPC] Enable printing instructions using aliases TableGen had been nicely generating code to print a number of instructions using shorter aliases (and PowerPC has plenty of short mnemonics), but we were not calling it. For some of the aliases we support in the parser, TableGen can't infer the "inverse" alias relationship, so there is still more to do. Thus, after some hours of updating test cases... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235616 91177308-0d34-0410-b5e6-96231b3b80d8 Hal Finkel 5 years ago
55 changed file(s) with 1274 addition(s) and 1281 deletion(s). Raw diff Collapse all Expand all
3030 FullRegNames("ppc-asm-full-reg-names", cl::Hidden, cl::init(false),
3131 cl::desc("Use full register names when printing assembly"));
3232
33 #define PRINT_ALIAS_INSTR
3334 #include "PPCGenAsmWriter.inc"
3435
3536 void PPCInstPrinter::printRegName(raw_ostream &OS, unsigned RegNo) const {
110111 // precision). FIXME: Is there a better solution?
111112 if (MI->getOpcode() == TargetOpcode::COPY_TO_REGCLASS)
112113 return;
113
114 printInstruction(MI, O);
114
115 if (!printAliasInstr(MI, O))
116 printInstruction(MI, O);
115117 printAnnotation(O, Annot);
116118 }
117119
3838 void printInstruction(const MCInst *MI, raw_ostream &O);
3939 static const char *getRegisterName(unsigned RegNo);
4040
41 bool printAliasInstr(const MCInst *MI, raw_ostream &OS);
42 void printCustomAliasOperand(const MCInst *MI, unsigned OpIdx,
43 unsigned PrintMethodIdx,
44 raw_ostream &OS);
4145
4246 void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
4347 void printPredicateOperand(const MCInst *MI, unsigned OpNo,
0 ; RUN: llc < %s -march=ppc32 -mtriple=powerpc-apple-darwin8 | \
1 ; RUN: grep cntlzw
1 ; RUN: grep cntlz
22
33 define i32 @foo() nounwind {
44 entry:
88 ; CHECK: mfcr [[T1:r[0-9]+]] ; cr2
99 ; CHECK: lis [[T2:r[0-9]+]], 1
1010 ; CHECK: addi r3, r1, 72
11 ; CHECK: rlwinm [[T1]], [[T1]], 8, 0, 31
11 ; CHECK: rotlwi [[T1]], [[T1]], 8
1212 ; CHECK: ori [[T2]], [[T2]], 34540
1313 ; CHECK: stwx [[T1]], r1, [[T2]]
1414 ; CHECK: lis [[T3:r[0-9]+]], 1
1515 ; CHECK: mfcr [[T4:r[0-9]+]] ; cr3
1616 ; CHECK: ori [[T3]], [[T3]], 34536
17 ; CHECK: rlwinm [[T4]], [[T4]], 12, 0, 31
17 ; CHECK: rotlwi [[T4]], [[T4]], 12
1818 ; CHECK: stwx [[T4]], r1, [[T3]]
1919 %x = alloca [100000 x i8] ; <[100000 x i8]*> [#uses=1]
2020 %"alloca point" = bitcast i32 0 to i32 ; [#uses=0]
2727 ; CHECK: lis [[T1:r[0-9]+]], 1
2828 ; CHECK: ori [[T1]], [[T1]], 34536
2929 ; CHECK: lwzx [[T1]], r1, [[T1]]
30 ; CHECK: rlwinm [[T1]], [[T1]], 20, 0, 31
30 ; CHECK: rotlwi [[T1]], [[T1]], 20
3131 ; CHECK: mtcrf 16, [[T1]]
3232 ; CHECK: lis [[T1]], 1
3333 ; CHECK: ori [[T1]], [[T1]], 34540
3434 ; CHECK: lwzx [[T1]], r1, [[T1]]
35 ; CHECK: rlwinm [[T1]], [[T1]], 24, 0, 31
35 ; CHECK: rotlwi [[T1]], [[T1]], 24
3636 ; CHECK: mtcrf 32, [[T1]]
3737 ret void
3838 }
2020 }
2121
2222 ; CHECK-LABEL: func1:
23 ; CHECK: cmpld {{[0-9]+}}, 4, 5
23 ; CHECK: cmpld {{([0-9]+,)?}}4, 5
2424 ; CHECK-DAG: std 4, -[[OFFSET1:[0-9]+]]
2525 ; CHECK-DAG: std 5, -[[OFFSET2:[0-9]+]]
2626 ; CHECK: ld 3, -[[OFFSET1]](1)
3030 ; DARWIN32: mr
3131 ; DARWIN32: mr r[[REG1:[0-9]+]], r[[REGA:[0-9]+]]
3232 ; DARWIN32: mr r[[REG2:[0-9]+]], r[[REGB:[0-9]+]]
33 ; DARWIN32: cmplw cr{{[0-9]+}}, r[[REGA]], r[[REGB]]
33 ; DARWIN32: cmplw {{(cr[0-9]+,)?}}r[[REGA]], r[[REGB]]
3434 ; DARWIN32: stw r[[REG1]], -[[OFFSET1:[0-9]+]]
3535 ; DARWIN32: stw r[[REG2]], -[[OFFSET2:[0-9]+]]
3636 ; DARWIN32: lwz r3, -[[OFFSET1]]
4040 ; DARWIN64: mr
4141 ; DARWIN64: mr r[[REG1:[0-9]+]], r[[REGA:[0-9]+]]
4242 ; DARWIN64: mr r[[REG2:[0-9]+]], r[[REGB:[0-9]+]]
43 ; DARWIN64: cmpld cr{{[0-9]+}}, r[[REGA]], r[[REGB]]
43 ; DARWIN64: cmpld {{(cr[0-9]+,)?}}r[[REGA]], r[[REGB]]
4444 ; DARWIN64: std r[[REG1]], -[[OFFSET1:[0-9]+]]
4545 ; DARWIN64: std r[[REG2]], -[[OFFSET2:[0-9]+]]
4646 ; DARWIN64: ld r3, -[[OFFSET1]]
6262
6363 ; CHECK-LABEL: func2:
6464 ; CHECK: ld [[REG2:[0-9]+]], 72(1)
65 ; CHECK: cmpld {{[0-9]+}}, 4, [[REG2]]
65 ; CHECK: cmpld {{([0-9]+,)?}}4, [[REG2]]
6666 ; CHECK-DAG: std [[REG2]], -[[OFFSET1:[0-9]+]]
6767 ; CHECK-DAG: std 4, -[[OFFSET2:[0-9]+]]
6868 ; CHECK: ld 3, -[[OFFSET2]](1)
7373 ; DARWIN32: lwz r[[REG2:[0-9]+]], 44(r[[REGSP]])
7474 ; DARWIN32: mr
7575 ; DARWIN32: mr r[[REG3:[0-9]+]], r[[REGA:[0-9]+]]
76 ; DARWIN32: cmplw cr{{[0-9]+}}, r[[REGA]], r[[REG2]]
76 ; DARWIN32: cmplw {{(cr[0-9]+,)?}}r[[REGA]], r[[REG2]]
7777 ; DARWIN32: stw r[[REG3]], -[[OFFSET1:[0-9]+]]
7878 ; DARWIN32: stw r[[REG2]], -[[OFFSET2:[0-9]+]]
7979 ; DARWIN32: lwz r3, -[[OFFSET1]]
8383 ; DARWIN64: ld r[[REG2:[0-9]+]], 72(r1)
8484 ; DARWIN64: mr
8585 ; DARWIN64: mr r[[REG3:[0-9]+]], r[[REGA:[0-9]+]]
86 ; DARWIN64: cmpld cr{{[0-9]+}}, r[[REGA]], r[[REG2]]
86 ; DARWIN64: cmpld {{(cr[0-9]+,)?}}r[[REGA]], r[[REG2]]
8787 ; DARWIN64: std r[[REG3]], -[[OFFSET1:[0-9]+]]
8888 ; DARWIN64: std r[[REG2]], -[[OFFSET2:[0-9]+]]
8989 ; DARWIN64: ld r3, -[[OFFSET1]]
107107 ; CHECK-LABEL: func3:
108108 ; CHECK: ld [[REG3:[0-9]+]], 72(1)
109109 ; CHECK: ld [[REG4:[0-9]+]], 56(1)
110 ; CHECK: cmpld {{[0-9]+}}, [[REG4]], [[REG3]]
110 ; CHECK: cmpld {{([0-9]+,)?}}[[REG4]], [[REG3]]
111111 ; CHECK: std [[REG3]], -[[OFFSET1:[0-9]+]](1)
112112 ; CHECK: std [[REG4]], -[[OFFSET2:[0-9]+]](1)
113113 ; CHECK: ld 3, -[[OFFSET2]](1)
118118 ; DARWIN32: addi r[[REG2:[0-9]+]], r[[REGSP]], 24
119119 ; DARWIN32: lwz r[[REG3:[0-9]+]], 44(r[[REGSP]])
120120 ; DARWIN32: lwz r[[REG4:[0-9]+]], 32(r[[REGSP]])
121 ; DARWIN32: cmplw cr{{[0-9]+}}, r[[REG4]], r[[REG3]]
121 ; DARWIN32: cmplw {{(cr[0-9]+,)?}}r[[REG4]], r[[REG3]]
122122 ; DARWIN32: stw r[[REG3]], -[[OFFSET1:[0-9]+]]
123123 ; DARWIN32: stw r[[REG4]], -[[OFFSET2:[0-9]+]]
124124 ; DARWIN32: lwz r3, -[[OFFSET2]]
127127 ; DARWIN64: _func3:
128128 ; DARWIN64: ld r[[REG3:[0-9]+]], 72(r1)
129129 ; DARWIN64: ld r[[REG4:[0-9]+]], 56(r1)
130 ; DARWIN64: cmpld cr{{[0-9]+}}, r[[REG4]], r[[REG3]]
130 ; DARWIN64: cmpld {{(cr[0-9]+,)?}}r[[REG4]], r[[REG3]]
131131 ; DARWIN64: std r[[REG3]], -[[OFFSET1:[0-9]+]]
132132 ; DARWIN64: std r[[REG4]], -[[OFFSET2:[0-9]+]]
133133 ; DARWIN64: ld r3, -[[OFFSET2]]
152152 ; CHECK-LABEL: func4:
153153 ; CHECK: ld [[REG3:[0-9]+]], 136(1)
154154 ; CHECK: ld [[REG2:[0-9]+]], 120(1)
155 ; CHECK: cmpld {{[0-9]+}}, [[REG2]], [[REG3]]
155 ; CHECK: cmpld {{([0-9]+,)?}}[[REG2]], [[REG3]]
156156 ; CHECK: std [[REG3]], -[[OFFSET2:[0-9]+]](1)
157157 ; CHECK: std [[REG2]], -[[OFFSET1:[0-9]+]](1)
158158 ; CHECK: ld 3, -[[OFFSET1]](1)
163163 ; DARWIN32: addi r[[REG1:[0-9]+]], r1, 100
164164 ; DARWIN32: lwz r[[REG3:[0-9]+]], 108(r1)
165165 ; DARWIN32: mr r[[REG2:[0-9]+]], r[[REG4]]
166 ; DARWIN32: cmplw cr{{[0-9]+}}, r[[REG4]], r[[REG3]]
166 ; DARWIN32: cmplw {{(cr[0-9]+,)?}}r[[REG4]], r[[REG3]]
167167 ; DARWIN32: stw r[[REG2]], -[[OFFSET1:[0-9]+]]
168168 ; DARWIN32: stw r[[REG3]], -[[OFFSET2:[0-9]+]]
169169 ; DARWIN32: lwz r[[REG1]], -[[OFFSET1]]
173173 ; DARWIN64: ld r[[REG2:[0-9]+]], 120(r1)
174174 ; DARWIN64: ld r[[REG3:[0-9]+]], 136(r1)
175175 ; DARWIN64: mr r[[REG4:[0-9]+]], r[[REG2]]
176 ; DARWIN64: cmpld cr{{[0-9]+}}, r[[REG2]], r[[REG3]]
176 ; DARWIN64: cmpld {{(cr[0-9]+,)?}}r[[REG2]], r[[REG3]]
177177 ; DARWIN64: std r[[REG4]], -[[OFFSET1:[0-9]+]]
178178 ; DARWIN64: std r[[REG3]], -[[OFFSET2:[0-9]+]]
179179 ; DARWIN64: ld r3, -[[OFFSET1]]
3030
3131 ; CHECK-LABEL: @foo
3232 ; CHECK: ld [[REG:[0-9]+]], 0(4)
33 ; CHECK: cmpw 0, [[REG]], [[REG]]
33 ; CHECK: cmpw [[REG]], [[REG]]
3434 ; CHECK: bne- 0, .Ltmp[[TMP:[0-9]+]]
3535 ; CHECK: .Ltmp[[TMP]]:
3636 ; CHECK: isync
8383 entry:
8484 ; CHECK: @atomic_store
8585 store atomic i64 %val, i64* %mem release, align 64
86 ; CHECK: sync 1
86 ; CHECK: lwsync
8787 ; CHECK-NOT: stdcx
8888 ; CHECK: std
8989 ret void
9595 %tmp = load atomic i64, i64* %mem acquire, align 64
9696 ; CHECK-NOT: ldarx
9797 ; CHECK: ld
98 ; CHECK: sync 1
98 ; CHECK: lwsync
9999 ret i64 %tmp
100100 }
101101
44 ; Fences
55 define void @fence_acquire() {
66 ; CHECK-LABEL: fence_acquire
7 ; CHECK: sync 1
8 ; PPC440-NOT: sync 1
7 ; CHECK: lwsync
8 ; PPC440-NOT: lwsync
99 ; PPC440: msync
1010 fence acquire
1111 ret void
1212 }
1313 define void @fence_release() {
1414 ; CHECK-LABEL: fence_release
15 ; CHECK: sync 1
16 ; PPC440-NOT: sync 1
15 ; CHECK: lwsync
16 ; PPC440-NOT: lwsync
1717 ; PPC440: msync
1818 fence release
1919 ret void
1010 ; CHECK-LABEL: load_x_i8_seq_cst
1111 ; CHECK: sync 0
1212 ; CHECK: lbzx
13 ; CHECK: sync 1
13 ; CHECK: lwsync
1414 %ptr = getelementptr inbounds [100000 x i8], [100000 x i8]* %mem, i64 0, i64 90000
1515 %val = load atomic i8, i8* %ptr seq_cst, align 1
1616 ret i8 %val
1818 define i16 @load_x_i16_acquire([100000 x i16]* %mem) {
1919 ; CHECK-LABEL: load_x_i16_acquire
2020 ; CHECK: lhzx
21 ; CHECK: sync 1
21 ; CHECK: lwsync
2222 %ptr = getelementptr inbounds [100000 x i16], [100000 x i16]* %mem, i64 0, i64 90000
2323 %val = load atomic i16, i16* %ptr acquire, align 2
2424 ret i16 %val
5353 }
5454 define void @store_x_i16_release([100000 x i16]* %mem) {
5555 ; CHECK-LABEL: store_x_i16_release
56 ; CHECK: sync 1
56 ; CHECK: lwsync
5757 ; CHECK: sthx
5858 %ptr = getelementptr inbounds [100000 x i16], [100000 x i16]* %mem, i64 0, i64 90000
5959 store atomic i16 42, i16* %ptr release, align 2
7070 define void @store_x_i64_unordered([100000 x i64]* %mem) {
7171 ; CHECK-LABEL: store_x_i64_unordered
7272 ; CHECK-NOT: sync 0
73 ; CHECK-NOT: sync 1
73 ; CHECK-NOT: lwsync
7474 ; PPC32: __sync_
7575 ; PPC64-NOT: __sync_
7676 ; PPC64: stdx
2626 ; CHECK-LABEL: load_i32_acquire
2727 ; CHECK: lwz
2828 %val = load atomic i32, i32* %mem acquire, align 4
29 ; CHECK: sync 1
29 ; CHECK: lwsync
3030 ret i32 %val
3131 }
3232 define i64 @load_i64_seq_cst(i64* %mem) {
3636 ; PPC64-NOT: __sync_
3737 ; PPC64: ld
3838 %val = load atomic i64, i64* %mem seq_cst, align 8
39 ; CHECK: sync 1
39 ; CHECK: lwsync
4040 ret i64 %val
4141 }
4242
5757 }
5858 define void @store_i32_release(i32* %mem) {
5959 ; CHECK-LABEL: store_i32_release
60 ; CHECK: sync 1
60 ; CHECK: lwsync
6161 ; CHECK: stw
6262 store atomic i32 42, i32* %mem release, align 4
6363 ret void
7777 ; CHECK-LABEL: cas_strong_i8_sc_sc
7878 ; CHECK: sync 0
7979 %val = cmpxchg i8* %mem, i8 0, i8 1 seq_cst seq_cst
80 ; CHECK: sync 1
80 ; CHECK: lwsync
8181 %loaded = extractvalue { i8, i1} %val, 0
8282 ret i8 %loaded
8383 }
8585 ; CHECK-LABEL: cas_weak_i16_acquire_acquire
8686 ;CHECK-NOT: sync
8787 %val = cmpxchg weak i16* %mem, i16 0, i16 1 acquire acquire
88 ; CHECK: sync 1
88 ; CHECK: lwsync
8989 %loaded = extractvalue { i16, i1} %val, 0
9090 ret i16 %loaded
9191 }
9292 define i32 @cas_strong_i32_acqrel_acquire(i32* %mem) {
9393 ; CHECK-LABEL: cas_strong_i32_acqrel_acquire
94 ; CHECK: sync 1
94 ; CHECK: lwsync
9595 %val = cmpxchg i32* %mem, i32 0, i32 1 acq_rel acquire
96 ; CHECK: sync 1
96 ; CHECK: lwsync
9797 %loaded = extractvalue { i32, i1} %val, 0
9898 ret i32 %loaded
9999 }
100100 define i64 @cas_weak_i64_release_monotonic(i64* %mem) {
101101 ; CHECK-LABEL: cas_weak_i64_release_monotonic
102 ; CHECK: sync 1
102 ; CHECK: lwsync
103103 %val = cmpxchg weak i64* %mem, i64 0, i64 1 release monotonic
104104 ; CHECK-NOT: [sync ]
105105 %loaded = extractvalue { i64, i1} %val, 0
117117 ; CHECK-LABEL: xor_i16_seq_cst
118118 ; CHECK: sync 0
119119 %val = atomicrmw xor i16* %mem, i16 %operand seq_cst
120 ; CHECK: sync 1
120 ; CHECK: lwsync
121121 ret i16 %val
122122 }
123123 define i32 @xchg_i32_acq_rel(i32* %mem, i32 %operand) {
124124 ; CHECK-LABEL: xchg_i32_acq_rel
125 ; CHECK: sync 1
125 ; CHECK: lwsync
126126 %val = atomicrmw xchg i32* %mem, i32 %operand acq_rel
127 ; CHECK: sync 1
127 ; CHECK: lwsync
128128 ret i32 %val
129129 }
130130 define i64 @and_i64_release(i64* %mem, i64 %operand) {
131131 ; CHECK-LABEL: and_i64_release
132 ; CHECK: sync 1
132 ; CHECK: lwsync
133133 %val = atomicrmw and i64* %mem, i64 %operand release
134134 ; CHECK-NOT: [sync ]
135135 ret i64 %val
2121 ret i64 %0
2222
2323 ; CHECK-LABEL: @bs8
24 ; CHECK-DAG: rldicl [[REG1:[0-9]+]], 3, 16, 0
25 ; CHECK-DAG: rldicl [[REG2:[0-9]+]], 3, 8, 0
26 ; CHECK-DAG: rldicl [[REG3:[0-9]+]], 3, 24, 0
24 ; CHECK-DAG: rotldi [[REG1:[0-9]+]], 3, 16
25 ; CHECK-DAG: rotldi [[REG2:[0-9]+]], 3, 8
26 ; CHECK-DAG: rotldi [[REG3:[0-9]+]], 3, 24
2727 ; CHECK-DAG: rldimi [[REG2]], [[REG1]], 8, 48
28 ; CHECK-DAG: rldicl [[REG4:[0-9]+]], 3, 32, 0
28 ; CHECK-DAG: rotldi [[REG4:[0-9]+]], 3, 32
2929 ; CHECK-DAG: rldimi [[REG2]], [[REG3]], 16, 40
30 ; CHECK-DAG: rldicl [[REG5:[0-9]+]], 3, 48, 0
30 ; CHECK-DAG: rotldi [[REG5:[0-9]+]], 3, 48
3131 ; CHECK-DAG: rldimi [[REG2]], [[REG4]], 24, 32
32 ; CHECK-DAG: rldicl [[REG6:[0-9]+]], 3, 56, 0
32 ; CHECK-DAG: rotldi [[REG6:[0-9]+]], 3, 56
3333 ; CHECK-DAG: rldimi [[REG2]], [[REG5]], 40, 16
3434 ; CHECK-DAG: rldimi [[REG2]], [[REG6]], 48, 8
3535 ; CHECK-DAG: rldimi [[REG2]], 3, 56, 0
4545
4646 ; CHECK-LABEL: @test1
4747 ; CHECK-DAG: li [[REG1:[0-9]+]], 11375
48 ; CHECK-DAG: rldicl [[REG3:[0-9]+]], 4, 56, 0
48 ; CHECK-DAG: rotldi [[REG3:[0-9]+]], 4, 56
4949 ; CHECK-DAG: sldi [[REG2:[0-9]+]], [[REG1]], 19
5050 ; CHECK: and 3, [[REG3]], [[REG2]]
5151 ; CHECK: blr
5959
6060 ; CHECK-LABEL: @test2
6161 ; CHECK-DAG: lis [[REG1:[0-9]+]], 474
62 ; CHECK-DAG: rldicl [[REG5:[0-9]+]], 4, 58, 0
62 ; CHECK-DAG: rotldi [[REG5:[0-9]+]], 4, 58
6363 ; CHECK-DAG: ori [[REG2:[0-9]+]], [[REG1]], 3648
6464 ; CHECK-DAG: sldi [[REG3:[0-9]+]], [[REG2]], 32
6565 ; CHECK-DAG: oris [[REG4:[0-9]+]], [[REG3]], 25464
7575
7676 ; CHECK-LABEL: @test3
7777 ; CHECK-DAG: lis [[REG1:[0-9]+]], 170
78 ; CHECK-DAG: rldicl [[REG4:[0-9]+]], 3, 34, 0
78 ; CHECK-DAG: rotldi [[REG4:[0-9]+]], 3, 34
7979 ; CHECK-DAG: ori [[REG2:[0-9]+]], [[REG1]], 22861
8080 ; CHECK-DAG: sldi [[REG3:[0-9]+]], [[REG2]], 34
8181 ; CHECK: and 3, [[REG4]], [[REG3]]
8989 ret i64 %and
9090
9191 ; CHECK-LABEL: @test4
92 ; CHECK: rldicl [[REG1:[0-9]+]], 4, 49, 0
92 ; CHECK: rotldi [[REG1:[0-9]+]], 4, 49
9393 ; CHECK: andis. 3, [[REG1]], 888
9494 ; CHECK: blr
9595 }
102102
103103 ; CHECK-LABEL: @test5
104104 ; CHECK-DAG: lis [[REG1:[0-9]+]], 3703
105 ; CHECK-DAG: rldicl [[REG4:[0-9]+]], 4, 12, 0
105 ; CHECK-DAG: rotldi [[REG4:[0-9]+]], 4, 12
106106 ; CHECK-DAG: ori [[REG2:[0-9]+]], [[REG1]], 35951
107107 ; CHECK-DAG: sldi [[REG3:[0-9]+]], [[REG2]], 19
108108 ; CHECK: and 3, [[REG4]], [[REG3]]
147147
148148 ; CHECK-LABEL: @test8
149149 ; CHECK-DAG: lis [[REG1:[0-9]+]], 4
150 ; CHECK-DAG: rldicl [[REG4:[0-9]+]], 3, 63, 0
150 ; CHECK-DAG: rotldi [[REG4:[0-9]+]], 3, 63
151151 ; CHECK-DAG: ori [[REG2:[0-9]+]], [[REG1]], 60527
152152 ; CHECK-DAG: sldi [[REG3:[0-9]+]], [[REG2]], 19
153153 ; CHECK: and 3, [[REG4]], [[REG3]]
165165
166166 ; CHECK-LABEL: @test9
167167 ; CHECK-DAG: lis [[REG1:[0-9]+]], 1440
168 ; CHECK-DAG: rldicl [[REG5:[0-9]+]], 4, 62, 0
169 ; CHECK-DAG: rldicl [[REG6:[0-9]+]], 4, 50, 0
168 ; CHECK-DAG: rotldi [[REG5:[0-9]+]], 4, 62
169 ; CHECK-DAG: rotldi [[REG6:[0-9]+]], 4, 50
170170 ; CHECK-DAG: ori [[REG2:[0-9]+]], [[REG1]], 4
171171 ; CHECK-DAG: rldimi [[REG6]], [[REG5]], 53, 0
172172 ; CHECK-DAG: sldi [[REG3:[0-9]+]], [[REG2]], 32
186186
187187 ; CHECK-LABEL: @test10
188188 ; CHECK-DAG: lis [[REG1:[0-9]+]], 1
189 ; CHECK-DAG: rldicl [[REG6:[0-9]+]], 3, 25, 0
190 ; CHECK-DAG: rldicl [[REG7:[0-9]+]], 3, 37, 0
189 ; CHECK-DAG: rotldi [[REG6:[0-9]+]], 3, 25
190 ; CHECK-DAG: rotldi [[REG7:[0-9]+]], 3, 37
191191 ; CHECK-DAG: ori [[REG2:[0-9]+]], [[REG1]], 8183
192192 ; CHECK-DAG: ori [[REG3:[0-9]+]], [[REG1]], 50017
193193 ; CHECK-DAG: sldi [[REG4:[0-9]+]], [[REG2]], 25
1616
1717 ; CHECK-LABEL: @test16
1818 ; CHECK: cmpb [[REG1:[0-9]+]], 4, 3
19 ; CHECK: rlwinm 3, [[REG1]], 0, 16, 31
19 ; CHECK: clrlwi 3, [[REG1]], 16
2020 ; CHECK: blr
2121 }
2222
1616
1717 ; CHECK-LABEL: @test16
1818 ; CHECK: cmpb [[REG1:[0-9]+]], 4, 3
19 ; CHECK: rldicl 3, [[REG1]], 0, 48
19 ; CHECK: clrldi 3, [[REG1]], 48
2020 ; CHECK: blr
2121 }
2222
7272
7373 ; CHECK-LABEL: @test16p3
7474 ; CHECK: cmpb [[REG1:[0-9]+]], 4, 3
75 ; CHECK: rldicl [[REG2:[0-9]+]], [[REG1]], 0, 55
75 ; CHECK: clrldi [[REG2:[0-9]+]], [[REG1]], 55
7676 ; CHECK: xori 3, [[REG2]], 1280
7777 ; CHECK: blr
7878 }
9898
9999 ; CHECK-LABEL: @test32
100100 ; CHECK: cmpb [[REG1:[0-9]+]], 4, 3
101 ; CHECK: rldicl 3, [[REG1]], 0, 32
101 ; CHECK: clrldi 3, [[REG1]], 32
102102 ; CHECK: blr
103103 }
104104
None ; RUN: llc < %s -march=ppc32 -mtriple=powerpc-apple-darwin8 | \
1 ; RUN: grep "cmpwi cr0, r3, -1"
0 ; RUN: llc < %s -march=ppc32 -mtriple=powerpc-apple-darwin8 | FileCheck %s
21
32 define i32 @test(i32 %x) nounwind {
3 ; CHECK-LABEL: @test
4 ; CHECK: cmpwi r3, -1
5
46 %c = icmp eq i32 %x, -1
57 br i1 %c, label %T, label %F
68 T:
1111 ; CHECK-LABEL: @testi1
1212 ; CHECK-DAG: andi. {{[0-9]+}}, 3, 1
1313 ; CHECK-DAG: li [[REG1:[0-9]+]], 0
14 ; CHECK-DAG: cror [[REG2:[0-9]+]], 1, 1
14 ; CHECK-DAG: crmove [[REG2:[0-9]+]], 1
1515 ; CHECK-DAG: andi. {{[0-9]+}}, 4, 1
1616 ; CHECK-DAG: crand [[REG3:[0-9]+]], [[REG2]], 1
1717 ; CHECK-DAG: li [[REG4:[0-9]+]], 1
3030 ; CHECK-LABEL: @testi32
3131 ; CHECK-DAG: andi. {{[0-9]+}}, 3, 1
3232 ; CHECK-DAG: li [[REG1:[0-9]+]], 0
33 ; CHECK-DAG: cror [[REG2:[0-9]+]], 1, 1
33 ; CHECK-DAG: crmove [[REG2:[0-9]+]], 1
3434 ; CHECK-DAG: andi. {{[0-9]+}}, 4, 1
3535 ; CHECK-DAG: crand [[REG3:[0-9]+]], [[REG2]], 1
3636 ; CHECK-DAG: li [[REG4:[0-9]+]], -1
4646 ; CHECK-LABEL: @testi8
4747 ; CHECK-DAG: andi. {{[0-9]+}}, 3, 1
4848 ; CHECK-DAG: li [[REG1:[0-9]+]], 0
49 ; CHECK-DAG: cror [[REG2:[0-9]+]], 1, 1
49 ; CHECK-DAG: crmove [[REG2:[0-9]+]], 1
5050 ; CHECK-DAG: andi. {{[0-9]+}}, 4, 1
5151 ; CHECK-DAG: crand [[REG3:[0-9]+]], [[REG2]], 1
5252 ; CHECK-DAG: li [[REG4:[0-9]+]], 1
106106 ; CHECK-LABEL: @test6
107107 ; CHECK-DAG: andi. {{[0-9]+}}, 3, 1
108108 ; CHECK-DAG: cmpwi {{[0-9]+}}, 5, -2
109 ; CHECK-DAG: cror [[REG1:[0-9]+]], 1, 1
109 ; CHECK-DAG: crmove [[REG1:[0-9]+]], 1
110110 ; CHECK-DAG: andi. {{[0-9]+}}, 4, 1
111111 ; CHECK-DAG: li [[REG2:[0-9]+]], 1
112112 ; CHECK-DAG: crorc [[REG4:[0-9]+]], 1,
55 define i32 @bar(i32 %x) {
66 entry:
77 ; CHECK: @bar
8 ; CHECK: cntlzw
8 ; CHECK: cntlz
99 %tmp.1 = call i32 @llvm.cttz.i32( i32 %x, i1 true ) ; [#uses=1]
1010 ret i32 %tmp.1
1111 }
200200 entry:
201201 ; ELF64: t12
202202 %cmp = icmp ugt i8 %a, -113
203 ; ELF64: rlwinm
203 ; ELF64: clrlwi
204204 ; ELF64: cmplwi
205205 br i1 %cmp, label %if.then, label %if.end
206206
252252 ; ELF64LE: std
253253 ; ELF64LE: lfd
254254 ; ELF64LE: fcfidus
255 ; PPC970: rlwinm {{[0-9]+}}, {{[0-9]+}}, 0, 16, 31
255 ; PPC970: clrlwi {{[0-9]+}}, {{[0-9]+}}, 16
256256 ; PPC970: std
257257 ; PPC970: lfd
258258 ; PPC970: fcfid
276276 ; ELF64LE: std
277277 ; ELF64LE: lfd
278278 ; ELF64LE: fcfidus
279 ; PPC970: rlwinm {{[0-9]+}}, {{[0-9]+}}, 0, 24, 31
279 ; PPC970: clrlwi {{[0-9]+}}, {{[0-9]+}}, 24
280280 ; PPC970: std
281281 ; PPC970: lfd
282282 ; PPC970: fcfid
341341 ; ELF64LE: std
342342 ; ELF64LE: lfd
343343 ; ELF64LE: fcfidu
344 ; PPC970: rlwinm {{[0-9]+}}, {{[0-9]+}}, 0, 16, 31
344 ; PPC970: clrlwi {{[0-9]+}}, {{[0-9]+}}, 16
345345 ; PPC970: std
346346 ; PPC970: lfd
347347 ; PPC970: fcfid
364364 ; ELF64LE: std
365365 ; ELF64LE: lfd
366366 ; ELF64LE: fcfidu
367 ; PPC970: rlwinm {{[0-9]+}}, {{[0-9]+}}, 0, 24, 31
367 ; PPC970: clrlwi {{[0-9]+}}, {{[0-9]+}}, 24
368368 ; PPC970: std
369369 ; PPC970: lfd
370370 ; PPC970: fcfid
44 define i32 @zext_8_32(i8 %a) nounwind ssp {
55 ; ELF64: zext_8_32
66 %r = zext i8 %a to i32
7 ; ELF64: rlwinm {{[0-9]+}}, {{[0-9]+}}, 0, 24, 31
7 ; ELF64: clrlwi {{[0-9]+}}, {{[0-9]+}}, 24
88 ret i32 %r
99 }
1010
1111 define i32 @zext_16_32(i16 %a) nounwind ssp {
1212 ; ELF64: zext_16_32
1313 %r = zext i16 %a to i32
14 ; ELF64: rlwinm {{[0-9]+}}, {{[0-9]+}}, 0, 16, 31
14 ; ELF64: clrlwi {{[0-9]+}}, {{[0-9]+}}, 16
1515 ret i32 %r
1616 }
1717
1313
1414 ; CHECK: sradi [[REG1:[0-9]+]], 3, 53
1515 ; CHECK: addi [[REG2:[0-9]+]], [[REG1]], 1
16 ; CHECK: cmpldi 0, [[REG2]], 1
16 ; CHECK: cmpldi [[REG2]], 1
1717 ; CHECK: isel [[REG3:[0-9]+]], {{[0-9]+}}, 3, 1
1818 ; CHECK: std [[REG3]], -{{[0-9]+}}(1)
1919
None ; RUN: llc < %s -march=ppc32 | grep cntlzw
0 ; RUN: llc < %s -march=ppc32 | grep cntlz
11 ; RUN: llc < %s -march=ppc32 | not grep xori
22 ; RUN: llc < %s -march=ppc32 | not grep "li "
33 ; RUN: llc < %s -march=ppc32 | not grep "mr "
1212 ; CHECK: mfspr 3, 269
1313 ; CHECK: mfspr 4, 268
1414 ; CHECK: mfspr [[REG:[0-9]+]], 269
15 ; CHECK: cmpw [[CR:[0-9]+]], 3, [[REG]]
16 ; CHECK: bne [[CR]], .LBB
15 ; CHECK: cmpw 3, [[REG]]
16 ; CHECK: bne 0, .LBB
1717
1818 declare i64 @llvm.readcyclecounter()
1919
33
44 define i64 @fun(i32 %arg32) nounwind {
55 entry:
6 ; CHECK: rldicl {{[0-9]+}}, {{[0-9]+}}, 0, 32
6 ; CHECK: clrldi {{[0-9]+}}, {{[0-9]+}}, 32
77 %o = zext i32 %arg32 to i64
88 ret i64 %o
99 }
2828 unreachable
2929
3030 ; CHECK: @test
31 ; CHECK: rlwinm [[R1:[0-9]+]], {{[0-9]+}}, 0, 31, 31
31 ; CHECK: clrlwi [[R1:[0-9]+]], {{[0-9]+}}, 31
3232 ; CHECK: rlwimi [[R1]], {{[0-9]+}}, 8, 23, 23
3333
3434 codeRepl29: ; preds = %codeRepl1
None ; RUN: llc < %s -march=ppc32 | grep rlwinm | count 4
1 ; RUN: llc < %s -march=ppc32 | grep rlwnm | count 2
0 ; RUN: llc < %s -march=ppc32 | grep rotlwi | count 2
1 ; RUN: llc < %s -march=ppc32 | grep clrlwi | count 2
2 ; RUN: llc < %s -march=ppc32 | grep rotlw | count 4
23 ; RUN: llc < %s -march=ppc32 | not grep or
34
45 define i32 @rotl32(i32 %A, i8 %Amt) nounwind {
None ; RUN: llc < %s -march=ppc64 | grep rldicl
1 ; RUN: llc < %s -march=ppc64 | grep rldcl
0 ; RUN: llc < %s -march=ppc64 | grep rotld
1 ; RUN: llc < %s -march=ppc64 | grep rotldi
22 ; PR1613
33
44 define i64 @t1(i64 %A) {
None ; RUN: llc < %s -march=ppc32 | grep rlwnm | count 2
1 ; RUN: llc < %s -march=ppc32 | grep rlwinm | count 2
0 ; RUN: llc < %s -march=ppc32 | grep rotrw: | count 1
1 ; RUN: llc < %s -march=ppc32 | grep rotlw: | count 1
2 ; RUN: llc < %s -march=ppc32 | grep rotlwi: | count 1
3 ; RUN: llc < %s -march=ppc32 | grep rotrwi: | count 1
24
35 define i32 @rotlw(i32 %x, i32 %sh) {
46 entry:
44 define fastcc void @_D3std4math4sqrtFNaNbNfcZc() {
55 entry:
66 br i1 undef, label %if, label %else
7 ; CHECK: cmplwi 0, 3, 0
7 ; CHECK: cmplwi 3, 0
88 if: ; preds = %entry
99 store { ppc_fp128, ppc_fp128 } zeroinitializer, { ppc_fp128, ppc_fp128 }* undef
1010 ret void
44 %tmp.2 = zext i1 %tmp.1 to i32 ; [#uses=1]
55 ret i32 %tmp.2
66
7 ; CHECK: cntlzw [[REG:r[0-9]+]], r3
7 ; CHECK: cntlz [[REG:r[0-9]+]], r3
88 ; CHECK: rlwinm r3, [[REG]], 27, 31, 31
99 ; CHECK: blr
1010 }
2929 ; CHECK-LABEL: @goo
3030
3131 ; CHECK-DAG: mflr 0
32 ; CHECK-DAG: rldicl [[REG:[0-9]+]], 1, 0, 59
32 ; CHECK-DAG: clrldi [[REG:[0-9]+]], 1, 59
3333 ; CHECK-DAG: std 30, -16(1)
3434 ; CHECK-DAG: mr 30, 1
3535 ; CHECK-DAG: std 0, 16(1)
5151 ; CHECK-FP-LABEL: @goo
5252
5353 ; CHECK-FP-DAG: mflr 0
54 ; CHECK-FP-DAG: rldicl [[REG:[0-9]+]], 1, 0, 59
54 ; CHECK-FP-DAG: clrldi [[REG:[0-9]+]], 1, 59
5555 ; CHECK-FP-DAG: std 31, -8(1)
5656 ; CHECK-FP-DAG: std 30, -16(1)
5757 ; CHECK-FP-DAG: mr 30, 1
7777
7878 ; CHECK-32-LABEL: @goo
7979 ; CHECK-32-DAG: mflr 0
80 ; CHECK-32-DAG: rlwinm [[REG:[0-9]+]], 1, 0, 27, 31
80 ; CHECK-32-DAG: clrlwi [[REG:[0-9]+]], 1, 27
8181 ; CHECK-32-DAG: stw 30, -8(1)
8282 ; CHECK-32-DAG: mr 30, 1
8383 ; CHECK-32-DAG: stw 0, 4(1)
8686
8787 ; CHECK-32-PIC-LABEL: @goo
8888 ; CHECK-32-PIC-DAG: mflr 0
89 ; CHECK-32-PIC-DAG: rlwinm [[REG:[0-9]+]], 1, 0, 27, 31
89 ; CHECK-32-PIC-DAG: clrlwi [[REG:[0-9]+]], 1, 27
9090 ; CHECK-32-PIC-DAG: stw 29, -12(1)
9191 ; CHECK-32-PIC-DAG: mr 29, 1
9292 ; CHECK-32-PIC-DAG: stw 0, 4(1)
112112 ; CHECK-LABEL: @hoo
113113
114114 ; CHECK-DAG: lis [[REG1:[0-9]+]], -13
115 ; CHECK-DAG: rldicl [[REG3:[0-9]+]], 1, 0, 59
115 ; CHECK-DAG: clrldi [[REG3:[0-9]+]], 1, 59
116116 ; CHECK-DAG: mflr 0
117117 ; CHECK-DAG: ori [[REG2:[0-9]+]], [[REG1]], 51808
118118 ; CHECK-DAG: std 30, -16(1)
128128 ; CHECK-32-LABEL: @hoo
129129
130130 ; CHECK-32-DAG: lis [[REG1:[0-9]+]], -13
131 ; CHECK-32-DAG: rlwinm [[REG3:[0-9]+]], 1, 0, 27, 31
131 ; CHECK-32-DAG: clrlwi [[REG3:[0-9]+]], 1, 27
132132 ; CHECK-32-DAG: mflr 0
133133 ; CHECK-32-DAG: ori [[REG2:[0-9]+]], [[REG1]], 51904
134134 ; CHECK-32-DAG: stw 30, -8(1)
142142 ; CHECK-32-PIC-LABEL: @hoo
143143
144144 ; CHECK-32-PIC-DAG: lis [[REG1:[0-9]+]], -13
145 ; CHECK-32-PIC-DAG: rlwinm [[REG3:[0-9]+]], 1, 0, 27, 31
145 ; CHECK-32-PIC-DAG: clrlwi [[REG3:[0-9]+]], 1, 27
146146 ; CHECK-32-PIC-DAG: mflr 0
147147 ; CHECK-32-PIC-DAG: ori [[REG2:[0-9]+]], [[REG1]], 51904
148148 ; CHECK-32-PIC-DAG: stw 29, -12(1)
174174 ; CHECK-LABEL: @loo
175175
176176 ; CHECK-DAG: mflr 0
177 ; CHECK-DAG: rldicl [[REG:[0-9]+]], 1, 0, 59
177 ; CHECK-DAG: clrldi [[REG:[0-9]+]], 1, 59
178178 ; CHECK-DAG: std 30, -32(1)
179179 ; CHECK-DAG: mr 30, 1
180180 ; CHECK-DAG: std 0, 16(1)
190190 ; CHECK-FP-LABEL: @loo
191191
192192 ; CHECK-FP-DAG: mflr 0
193 ; CHECK-FP-DAG: rldicl [[REG:[0-9]+]], 1, 0, 59
193 ; CHECK-FP-DAG: clrldi [[REG:[0-9]+]], 1, 59
194194 ; CHECK-FP-DAG: std 31, -24(1)
195195 ; CHECK-FP-DAG: std 30, -32(1)
196196 ; CHECK-FP-DAG: mr 30, 1
159159
160160 ; CHECK-LABEL: @jbd2_journal_commit_transaction
161161 ; CHECK: andi.
162 ; CHECK: cror [[REG:[0-9]+]], 1, 1
162 ; CHECK: crmove [[REG:[0-9]+]], 1
163163 ; CHECK: stdcx.
164164 ; CHECK: isel {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}, [[REG]]
165165
142142
143143 ; CHECK-LABEL: @jbd2_journal_commit_transaction
144144 ; CHECK: andi.
145 ; CHECK: cror [[REG:[0-9]+]], 1, 1
145 ; CHECK: crmove [[REG:[0-9]+]], 1
146146 ; CHECK: stdcx.
147147 ; CHECK: isel {{[0-9]+}}, {{[0-9]+}}, {{[0-9]+}}, [[REG]]
148148
0 ; RUN: llc -mcpu=pwr8 -mattr=+vsx -O2 -mtriple=powerpc64le-unknown-linux-gnu < %s > %t
11 ; RUN: grep lxvd2x < %t | count 18
22 ; RUN: grep stxvd2x < %t | count 18
3 ; RUN: grep xxpermdi < %t | count 36
3 ; RUN: grep xxswapd < %t | count 36
44
55 @vf = global <4 x float> , align 16
66 @vd = global <2 x double> , align 16
1111 ; RUN: llc -mcpu=pwr8 -mattr=+vsx -O2 -mtriple=powerpc64le-unknown-linux-gnu < %s > %t
1212 ; RUN: grep lxvd2x < %t | count 6
1313 ; RUN: grep stxvd2x < %t | count 6
14 ; RUN: grep xxpermdi < %t | count 12
14 ; RUN: grep xxswapd < %t | count 12
1515
1616 @vsi = global <4 x i32> , align 16
1717 @vui = global <4 x i32> , align 16
732732 ret <2 x double> %v
733733
734734 ; CHECK-LABEL: @test51
735 ; CHECK: xxpermdi 34, 34, 34, 0
735 ; CHECK: xxspltd 34, 34, 0
736736 ; CHECK: blr
737737 }
738738
741741 ret <2 x double> %v
742742
743743 ; CHECK-LABEL: @test52
744 ; CHECK: xxpermdi 34, 34, 35, 0
744 ; CHECK: xxmrghd 34, 34, 35
745745 ; CHECK: blr
746746 }
747747
750750 ret <2 x double> %v
751751
752752 ; CHECK-LABEL: @test53
753 ; CHECK: xxpermdi 34, 35, 34, 0
753 ; CHECK: xxmrghd 34, 35, 34
754754 ; CHECK: blr
755755 }
756756
768768 ret <2 x double> %v
769769
770770 ; CHECK-LABEL: @test55
771 ; CHECK: xxpermdi 34, 34, 35, 3
771 ; CHECK: xxmrgld 34, 34, 35
772772 ; CHECK: blr
773773 }
774774
777777 ret <2 x i64> %v
778778
779779 ; CHECK-LABEL: @test56
780 ; CHECK: xxpermdi 34, 34, 35, 3
780 ; CHECK: xxmrgld 34, 34, 35
781781 ; CHECK: blr
782782 }
783783
842842 ret double %v
843843
844844 ; CHECK-REG-LABEL: @test64
845 ; CHECK-REG: xxpermdi 1, 34, 34, 2
845 ; CHECK-REG: xxswapd 1, 34
846846 ; CHECK-REG: blr
847847
848848 ; CHECK-FISL-LABEL: @test64
849 ; CHECK-FISL: xxpermdi 34, 34, 34, 2
849 ; CHECK-FISL: xxswapd 34, 34
850850 ; CHECK-FISL: xxlor 0, 34, 34
851851 ; CHECK-FISL: fmr 1, 0
852852 ; CHECK-FISL: blr
88 ; CHECK-LABEL: testi0
99 ; CHECK: lxvd2x 0, 0, 3
1010 ; CHECK: lxsdx 34, 0, 4
11 ; CHECK: xxpermdi 0, 0, 0, 2
12 ; CHECK: xxpermdi 1, 34, 34, 0
11 ; CHECK: xxswapd 0, 0
12 ; CHECK: xxspltd 1, 34, 0
1313 ; CHECK: xxpermdi 34, 0, 1, 1
1414 }
1515
2222 ; CHECK-LABEL: testi1
2323 ; CHECK: lxvd2x 0, 0, 3
2424 ; CHECK: lxsdx 34, 0, 4
25 ; CHECK: xxpermdi 0, 0, 0, 2
26 ; CHECK: xxpermdi 1, 34, 34, 0
27 ; CHECK: xxpermdi 34, 1, 0, 3
25 ; CHECK: xxswapd 0, 0
26 ; CHECK: xxspltd 1, 34, 0
27 ; CHECK: xxmrgld 34, 1, 0
2828 }
2929
3030 define double @teste0(<2 x double>* %p1) {
3636
3737 ; CHECK-LABEL: teste0
3838 ; CHECK: lxvd2x 0, 0, 3
39 ; CHECK: xxpermdi 0, 0, 0, 2
40 ; CHECK: xxpermdi 1, 0, 0, 2
39 ; CHECK: xxswapd 0, 0
40 ; CHECK: xxswapd 1, 0
4141 }
4242
4343 define double @teste1(<2 x double>* %p1) {
4747
4848 ; CHECK-LABEL: teste1
4949 ; CHECK: lxvd2x 0, 0, 3
50 ; CHECK: xxpermdi 1, 0, 0, 2
50 ; CHECK: xxswapd 1, 0
5151 }
77
88 ; CHECK-LABEL: test00
99 ; CHECK: lxvd2x 0, 0, 3
10 ; CHECK: xxpermdi 0, 0, 0, 2
11 ; CHECK: xxpermdi 34, 0, 0, 3
10 ; CHECK: xxswapd 0, 0
11 ; CHECK: xxspltd 34, 0, 1
1212 }
1313
1414 define <2 x double> @test01(<2 x double>* %p1, <2 x double>* %p2) {
1919
2020 ; CHECK-LABEL: test01
2121 ; CHECK: lxvd2x 0, 0, 3
22 ; CHECK: xxpermdi 34, 0, 0, 2
22 ; CHECK: xxswapd 34, 0
2323 }
2424
2525 define <2 x double> @test02(<2 x double>* %p1, <2 x double>* %p2) {
3131 ; CHECK-LABEL: @test02
3232 ; CHECK: lxvd2x 0, 0, 3
3333 ; CHECK: lxvd2x 1, 0, 4
34 ; CHECK: xxpermdi 0, 0, 0, 2
35 ; CHECK: xxpermdi 1, 1, 1, 2
36 ; CHECK: xxpermdi 34, 1, 0, 3
34 ; CHECK: xxswapd 0, 0
35 ; CHECK: xxswapd 1, 1
36 ; CHECK: xxmrgld 34, 1, 0
3737 }
3838
3939 define <2 x double> @test03(<2 x double>* %p1, <2 x double>* %p2) {
4545 ; CHECK-LABEL: @test03
4646 ; CHECK: lxvd2x 0, 0, 3
4747 ; CHECK: lxvd2x 1, 0, 4
48 ; CHECK: xxpermdi 0, 0, 0, 2
49 ; CHECK: xxpermdi 1, 1, 1, 2
48 ; CHECK: xxswapd 0, 0
49 ; CHECK: xxswapd 1, 1
5050 ; CHECK: xxpermdi 34, 1, 0, 1
5151 }
5252
5858
5959 ; CHECK-LABEL: @test10
6060 ; CHECK: lxvd2x 0, 0, 3
61 ; CHECK: xxpermdi 0, 0, 0, 2
62 ; CHECK: xxpermdi 34, 0, 0, 2
61 ; CHECK: xxswapd 0, 0
62 ; CHECK: xxswapd 34, 0
6363 }
6464
6565 define <2 x double> @test11(<2 x double>* %p1, <2 x double>* %p2) {
7070
7171 ; CHECK-LABEL: @test11
7272 ; CHECK: lxvd2x 0, 0, 3
73 ; CHECK: xxpermdi 0, 0, 0, 2
74 ; CHECK: xxpermdi 34, 0, 0, 0
73 ; CHECK: xxswapd 0, 0
74 ; CHECK: xxspltd 34, 0, 0
7575 }
7676
7777 define <2 x double> @test12(<2 x double>* %p1, <2 x double>* %p2) {
8383 ; CHECK-LABEL: @test12
8484 ; CHECK: lxvd2x 0, 0, 3
8585 ; CHECK: lxvd2x 1, 0, 4
86 ; CHECK: xxpermdi 0, 0, 0, 2
87 ; CHECK: xxpermdi 1, 1, 1, 2
86 ; CHECK: xxswapd 0, 0
87 ; CHECK: xxswapd 1, 1
8888 ; CHECK: xxpermdi 34, 1, 0, 2
8989 }
9090
9797 ; CHECK-LABEL: @test13
9898 ; CHECK: lxvd2x 0, 0, 3
9999 ; CHECK: lxvd2x 1, 0, 4
100 ; CHECK: xxpermdi 0, 0, 0, 2
101 ; CHECK: xxpermdi 1, 1, 1, 2
102 ; CHECK: xxpermdi 34, 1, 0, 0
100 ; CHECK: xxswapd 0, 0
101 ; CHECK: xxswapd 1, 1
102 ; CHECK: xxmrghd 34, 1, 0
103103 }
104104
105105 define <2 x double> @test20(<2 x double>* %p1, <2 x double>* %p2) {
111111 ; CHECK-LABEL: @test20
112112 ; CHECK: lxvd2x 0, 0, 3
113113 ; CHECK: lxvd2x 1, 0, 4
114 ; CHECK: xxpermdi 0, 0, 0, 2
115 ; CHECK: xxpermdi 1, 1, 1, 2
116 ; CHECK: xxpermdi 34, 0, 1, 3
114 ; CHECK: xxswapd 0, 0
115 ; CHECK: xxswapd 1, 1
116 ; CHECK: xxmrgld 34, 0, 1
117117 }
118118
119119 define <2 x double> @test21(<2 x double>* %p1, <2 x double>* %p2) {
125125 ; CHECK-LABEL: @test21
126126 ; CHECK: lxvd2x 0, 0, 3
127127 ; CHECK: lxvd2x 1, 0, 4
128 ; CHECK: xxpermdi 0, 0, 0, 2
129 ; CHECK: xxpermdi 1, 1, 1, 2
128 ; CHECK: xxswapd 0, 0
129 ; CHECK: xxswapd 1, 1
130130 ; CHECK: xxpermdi 34, 0, 1, 1
131131 }
132132
138138
139139 ; CHECK-LABEL: @test22
140140 ; CHECK: lxvd2x 0, 0, 4
141 ; CHECK: xxpermdi 0, 0, 0, 2
142 ; CHECK: xxpermdi 34, 0, 0, 3
141 ; CHECK: xxswapd 0, 0
142 ; CHECK: xxspltd 34, 0, 1
143143 }
144144
145145 define <2 x double> @test23(<2 x double>* %p1, <2 x double>* %p2) {
150150
151151 ; CHECK-LABEL: @test23
152152 ; CHECK: lxvd2x 0, 0, 4
153 ; CHECK: xxpermdi 34, 0, 0, 2
153 ; CHECK: xxswapd 34, 0
154154 }
155155
156156 define <2 x double> @test30(<2 x double>* %p1, <2 x double>* %p2) {
162162 ; CHECK-LABEL: @test30
163163 ; CHECK: lxvd2x 0, 0, 3
164164 ; CHECK: lxvd2x 1, 0, 4
165 ; CHECK: xxpermdi 0, 0, 0, 2
166 ; CHECK: xxpermdi 1, 1, 1, 2
165 ; CHECK: xxswapd 0, 0
166 ; CHECK: xxswapd 1, 1
167167 ; CHECK: xxpermdi 34, 0, 1, 2
168168 }
169169
176176 ; CHECK-LABEL: @test31
177177 ; CHECK: lxvd2x 0, 0, 3
178178 ; CHECK: lxvd2x 1, 0, 4
179 ; CHECK: xxpermdi 0, 0, 0, 2
180 ; CHECK: xxpermdi 1, 1, 1, 2
181 ; CHECK: xxpermdi 34, 0, 1, 0
179 ; CHECK: xxswapd 0, 0
180 ; CHECK: xxswapd 1, 1
181 ; CHECK: xxmrghd 34, 0, 1
182182 }
183183
184184 define <2 x double> @test32(<2 x double>* %p1, <2 x double>* %p2) {
189189
190190 ; CHECK-LABEL: @test32
191191 ; CHECK: lxvd2x 0, 0, 4
192 ; CHECK: xxpermdi 0, 0, 0, 2
193 ; CHECK: xxpermdi 34, 0, 0, 2
192 ; CHECK: xxswapd 0, 0
193 ; CHECK: xxswapd 34, 0
194194 }
195195
196196 define <2 x double> @test33(<2 x double>* %p1, <2 x double>* %p2) {
201201
202202 ; CHECK-LABEL: @test33
203203 ; CHECK: lxvd2x 0, 0, 4
204 ; CHECK: xxpermdi 0, 0, 0, 2
205 ; CHECK: xxpermdi 34, 0, 0, 0
206 }
204 ; CHECK: xxswapd 0, 0
205 ; CHECK: xxspltd 34, 0, 0
206 }
44 # CHECK: mtdcr 178, 3
55 0x7c 0x72 0x2b 0x86
66
7 # CHECK: tlbre 2, 3, 0
7 # CHECK: tlbrehi 2, 3
88 0x7c 0x43 0x07 0x64
9 # CHECK: tlbre 2, 3, 1
9 # CHECK: tlbrelo 2, 3
1010 0x7c 0x43 0x0f 0x64
1111
12 # CHECK: tlbwe 2, 3, 0
12 # CHECK: tlbwehi 2, 3
1313 0x7c 0x43 0x07 0xa4
14 # CHECK: tlbwe 2, 3, 1
14 # CHECK: tlbwelo 2, 3
1515 0x7c 0x43 0x0f 0xa4
1616
1717 # CHECK: tlbsx 2, 3, 1
2626 # CHECK: stdcx. 2, 3, 4
2727 0x7c 0x43 0x21 0xad
2828
29 # CHECK: sync 2
29 # CHECK: ptesync
3030 0x7c 0x40 0x04 0xac
3131
3232 # CHECK: eieio
3333 0x7c 0x00 0x06 0xac
3434
35 # CHECK: wait 2
35 # CHECK: waitimpl
3636 0x7c 0x40 0x00 0x7c
3737
3838 # CHECK: mbar 1
7171 # CHECK: sync 0
7272 0x7c 0x00 0x04 0xac
7373
74 # CHECK: sync 1
74 # CHECK: lwsync
7575 0x7c 0x20 0x04 0xac
7676
77 # CHECK: sync 2
77 # CHECK: ptesync
7878 0x7c 0x40 0x04 0xac
7979
80 # CHECK: wait 0
80 # CHECK: wait
8181 0x7c 0x00 0x00 0x7c
8282
83 # CHECK: wait 1
83 # CHECK: waitrsv
8484 0x7c 0x20 0x00 0x7c
8585
86 # CHECK: wait 2
86 # CHECK: waitimpl
8787 0x7c 0x40 0x00 0x7c
8888
8989 # CHECK: mftb 2, 123
9292 # CHECK: mftb 2, 268
9393 0x7c 0x4c 0x42 0xe6
9494
95 # CHECK: mftb 2, 269
95 # CHECK: mftbu 2
9696 0x7c 0x4d 0x42 0xe6
9797
0 # RUN: llvm-mc --disassemble %s -triple powerpc64-unknown-unknown -mcpu=pwr7 | FileCheck %s
11
2 # CHECK: mtmsr 4, 0
2 # CHECK: mtmsr 4
33 0x7c 0x80 0x01 0x24
44
55 # CHECK: mtmsr 4, 1
88 # CHECK: mfmsr 4
99 0x7c 0x80 0x00 0xa6
1010
11 # CHECK: mtmsrd 4, 0
11 # CHECK: mtmsrd 4
1212 0x7c 0x80 0x01 0x64
1313
1414 # CHECK: mtmsrd 4, 1
5959 # CHECK: mtspr 22, 4
6060 0x7c 0x96 0x03 0xa6
6161
62 # CHECK: mfspr 4, 287
62 # CHECK: mfpvr 4
6363 0x7c 0x9f 0x42 0xa6
6464
6565 # CHECK: mfspr 4, 25
9898 # CHECK: tlbiel 4
9999 0x7c 0x00 0x22 0x24
100100
101 # CHECK: tlbie 4,0
101 # CHECK: tlbie 4
102102 0x7c 0x00 0x22 0x64
103103
104 # CHECK: tlbie 4,0
104 # CHECK: tlbie 4
105105 0x7c 0x00 0x22 0x64
106106
107107 # CHECK: rfi
0 # RUN: llvm-mc --disassemble %s -triple powerpc64-unknown-unknown -mcpu=pwr7 | FileCheck %s
11
22 # FIXME: decode as beqlr 0
3 # CHECK: bclr 12, 2, 0
3 # CHECK: bclr 12, 2
44 0x4d 0x82 0x00 0x20
55
66 # FIXME: decode as beqlr 1
7 # CHECK: bclr 12, 6, 0
7 # CHECK: bclr 12, 6
88 0x4d 0x86 0x00 0x20
99
1010 # FIXME: decode as beqlr 2
11 # CHECK: bclr 12, 10, 0
11 # CHECK: bclr 12, 10
1212 0x4d 0x8a 0x00 0x20
1313
1414 # FIXME: decode as beqlr 3
15 # CHECK: bclr 12, 14, 0
15 # CHECK: bclr 12, 14
1616 0x4d 0x8e 0x00 0x20
1717
1818 # FIXME: decode as beqlr 4
19 # CHECK: bclr 12, 18, 0
19 # CHECK: bclr 12, 18
2020 0x4d 0x92 0x00 0x20
2121
2222 # FIXME: decode as beqlr 5
23 # CHECK: bclr 12, 22, 0
23 # CHECK: bclr 12, 22
2424 0x4d 0x96 0x00 0x20
2525
2626 # FIXME: decode as beqlr 6
27 # CHECK: bclr 12, 26, 0
27 # CHECK: bclr 12, 26
2828 0x4d 0x9a 0x00 0x20
2929
3030 # FIXME: decode as beqlr 7
31 # CHECK: bclr 12, 30, 0
31 # CHECK: bclr 12, 30
3232 0x4d 0x9e 0x00 0x20
3333
34 # CHECK: bclr 12, 0, 0
34 # CHECK: bclr 12, 0
3535 0x4d 0x80 0x00 0x20
3636
37 # CHECK: bclr 12, 1, 0
37 # CHECK: bclr 12, 1
3838 0x4d 0x81 0x00 0x20
3939
40 # CHECK: bclr 12, 2, 0
40 # CHECK: bclr 12, 2
4141 0x4d 0x82 0x00 0x20
4242
43 # CHECK: bclr 12, 3, 0
43 # CHECK: bclr 12, 3
4444 0x4d 0x83 0x00 0x20
4545
46 # CHECK: bclr 12, 3, 0
46 # CHECK: bclr 12, 3
4747 0x4d 0x83 0x00 0x20
4848
49 # CHECK: bclr 12, 4, 0
49 # CHECK: bclr 12, 4
5050 0x4d 0x84 0x00 0x20
5151
52 # CHECK: bclr 12, 5, 0
52 # CHECK: bclr 12, 5
5353 0x4d 0x85 0x00 0x20
5454
55 # CHECK: bclr 12, 6, 0
55 # CHECK: bclr 12, 6
5656 0x4d 0x86 0x00 0x20
5757
58 # CHECK: bclr 12, 7, 0
58 # CHECK: bclr 12, 7
5959 0x4d 0x87 0x00 0x20
6060
61 # CHECK: bclr 12, 7, 0
61 # CHECK: bclr 12, 7
6262 0x4d 0x87 0x00 0x20
6363
64 # CHECK: bclr 12, 8, 0
64 # CHECK: bclr 12, 8
6565 0x4d 0x88 0x00 0x20
6666
67 # CHECK: bclr 12, 9, 0
67 # CHECK: bclr 12, 9
6868 0x4d 0x89 0x00 0x20
6969
70 # CHECK: bclr 12, 10, 0
70 # CHECK: bclr 12, 10
7171 0x4d 0x8a 0x00 0x20
7272
73 # CHECK: bclr 12, 11, 0
73 # CHECK: bclr 12, 11
7474 0x4d 0x8b 0x00 0x20
7575
76 # CHECK: bclr 12, 11, 0
76 # CHECK: bclr 12, 11
7777 0x4d 0x8b 0x00 0x20
7878
79 # CHECK: bclr 12, 12, 0
79 # CHECK: bclr 12, 12
8080 0x4d 0x8c 0x00 0x20
8181
82 # CHECK: bclr 12, 13, 0
82 # CHECK: bclr 12, 13
8383 0x4d 0x8d 0x00 0x20
8484
85 # CHECK: bclr 12, 14, 0
85 # CHECK: bclr 12, 14
8686 0x4d 0x8e 0x00 0x20
8787
88 # CHECK: bclr 12, 15, 0
88 # CHECK: bclr 12, 15
8989 0x4d 0x8f 0x00 0x20
9090
91 # CHECK: bclr 12, 15, 0
91 # CHECK: bclr 12, 15
9292 0x4d 0x8f 0x00 0x20
9393
94 # CHECK: bclr 12, 16, 0
94 # CHECK: bclr 12, 16
9595 0x4d 0x90 0x00 0x20
9696
97 # CHECK: bclr 12, 17, 0
97 # CHECK: bclr 12, 17
9898 0x4d 0x91 0x00 0x20
9999
100 # CHECK: bclr 12, 18, 0
100 # CHECK: bclr 12, 18
101101 0x4d 0x92 0x00 0x20
102102
103 # CHECK: bclr 12, 19, 0
103 # CHECK: bclr 12, 19
104104 0x4d 0x93 0x00 0x20
105105
106 # CHECK: bclr 12, 19, 0
106 # CHECK: bclr 12, 19
107107 0x4d 0x93 0x00 0x20
108108
109 # CHECK: bclr 12, 20, 0
109 # CHECK: bclr 12, 20
110110 0x4d 0x94 0x00 0x20
111111
112 # CHECK: bclr 12, 21, 0
112 # CHECK: bclr 12, 21
113113 0x4d 0x95 0x00 0x20
114114
115 # CHECK: bclr 12, 22, 0
115 # CHECK: bclr 12, 22
116116 0x4d 0x96 0x00 0x20
117117
118 # CHECK: bclr 12, 23, 0
118 # CHECK: bclr 12, 23
119119 0x4d 0x97 0x00 0x20
120120
121 # CHECK: bclr 12, 23, 0
121 # CHECK: bclr 12, 23
122122 0x4d 0x97 0x00 0x20
123123
124 # CHECK: bclr 12, 24, 0
124 # CHECK: bclr 12, 24
125125 0x4d 0x98 0x00 0x20
126126
127 # CHECK: bclr 12, 25, 0
127 # CHECK: bclr 12, 25
128128 0x4d 0x99 0x00 0x20
129129
130 # CHECK: bclr 12, 26, 0
130 # CHECK: bclr 12, 26
131131 0x4d 0x9a 0x00 0x20
132132
133 # CHECK: bclr 12, 27, 0
133 # CHECK: bclr 12, 27
134134 0x4d 0x9b 0x00 0x20
135135
136 # CHECK: bclr 12, 27, 0
136 # CHECK: bclr 12, 27
137137 0x4d 0x9b 0x00 0x20
138138
139 # CHECK: bclr 12, 28, 0
139 # CHECK: bclr 12, 28
140140 0x4d 0x9c 0x00 0x20
141141
142 # CHECK: bclr 12, 29, 0
142 # CHECK: bclr 12, 29
143143 0x4d 0x9d 0x00 0x20
144144
145 # CHECK: bclr 12, 30, 0
145 # CHECK: bclr 12, 30
146146 0x4d 0x9e 0x00 0x20
147147
148 # CHECK: bclr 12, 31, 0
148 # CHECK: bclr 12, 31
149149 0x4d 0x9f 0x00 0x20
150150
151 # CHECK: bclr 12, 31, 0
151 # CHECK: bclr 12, 31
152152 0x4d 0x9f 0x00 0x20
153153
154154 # CHECK: blr
163163 # CHECK: bctrl
164164 0x4e 0x80 0x04 0x21
165165
166 # CHECK: bclr 12, 2, 0
166 # CHECK: bclr 12, 2
167167 0x4d 0x82 0x00 0x20
168168
169 # CHECK: bcctr 12, 2, 0
169 # CHECK: bcctr 12, 2
170170 0x4d 0x82 0x04 0x20
171171
172 # CHECK: bclrl 12, 2, 0
172 # CHECK: bclrl 12, 2
173173 0x4d 0x82 0x00 0x21
174174
175 # CHECK: bcctrl 12, 2, 0
175 # CHECK: bcctrl 12, 2
176176 0x4d 0x82 0x04 0x21
177177
178 # CHECK: bclr 15, 2, 0
178 # CHECK: bclr 15, 2
179179 0x4d 0xe2 0x00 0x20
180180
181 # CHECK: bcctr 15, 2, 0
181 # CHECK: bcctr 15, 2
182182 0x4d 0xe2 0x04 0x20
183183
184 # CHECK: bclrl 15, 2, 0
184 # CHECK: bclrl 15, 2
185185 0x4d 0xe2 0x00 0x21
186186
187 # CHECK: bcctrl 15, 2, 0
187 # CHECK: bcctrl 15, 2
188188 0x4d 0xe2 0x04 0x21
189189
190 # CHECK: bclr 14, 2, 0
190 # CHECK: bclr 14, 2
191191 0x4d 0xc2 0x00 0x20
192192
193 # CHECK: bcctr 14, 2, 0
193 # CHECK: bcctr 14, 2
194194 0x4d 0xc2 0x04 0x20
195195
196 # CHECK: bclrl 14, 2, 0
196 # CHECK: bclrl 14, 2
197197 0x4d 0xc2 0x00 0x21
198198
199 # CHECK: bcctrl 14, 2, 0
199 # CHECK: bcctrl 14, 2
200200 0x4d 0xc2 0x04 0x21
201201
202 # CHECK: bclr 4, 2, 0
202 # CHECK: bclr 4, 2
203203 0x4c 0x82 0x00 0x20
204204
205 # CHECK: bcctr 4, 2, 0
205 # CHECK: bcctr 4, 2
206206 0x4c 0x82 0x04 0x20
207207
208 # CHECK: bclrl 4, 2, 0
208 # CHECK: bclrl 4, 2
209209 0x4c 0x82 0x00 0x21
210210
211 # CHECK: bcctrl 4, 2, 0
211 # CHECK: bcctrl 4, 2
212212 0x4c 0x82 0x04 0x21
213213
214 # CHECK: bclr 7, 2, 0
214 # CHECK: bclr 7, 2
215215 0x4c 0xe2 0x00 0x20
216216
217 # CHECK: bcctr 7, 2, 0
217 # CHECK: bcctr 7, 2
218218 0x4c 0xe2 0x04 0x20
219219
220 # CHECK: bclrl 7, 2, 0
220 # CHECK: bclrl 7, 2
221221 0x4c 0xe2 0x00 0x21
222222
223 # CHECK: bcctrl 7, 2, 0
223 # CHECK: bcctrl 7, 2
224224 0x4c 0xe2 0x04 0x21
225225
226 # CHECK: bclr 6, 2, 0
226 # CHECK: bclr 6, 2
227227 0x4c 0xc2 0x00 0x20
228228
229 # CHECK: bcctr 6, 2, 0
229 # CHECK: bcctr 6, 2
230230 0x4c 0xc2 0x04 0x20
231231
232 # CHECK: bclrl 6, 2, 0
232 # CHECK: bclrl 6, 2
233233 0x4c 0xc2 0x00 0x21
234234
235 # CHECK: bcctrl 6, 2, 0
235 # CHECK: bcctrl 6, 2
236236 0x4c 0xc2 0x04 0x21
237237
238238 # CHECK: bdnzlr
253253 # CHECK: bdnzlrl-
254254 0x4f 0x00 0x00 0x21
255255
256 # CHECK: bclr 8, 2, 0
256 # CHECK: bclr 8, 2
257257 0x4d 0x02 0x00 0x20
258258
259 # CHECK: bclrl 8, 2, 0
259 # CHECK: bclrl 8, 2
260260 0x4d 0x02 0x00 0x21
261261
262 # CHECK: bclr 0, 2, 0
262 # CHECK: bclr 0, 2
263263 0x4c 0x02 0x00 0x20
264264
265 # CHECK: bclrl 0, 2, 0
265 # CHECK: bclrl 0, 2
266266 0x4c 0x02 0x00 0x21
267267
268268 # CHECK: bdzlr
283283 # CHECK: bdzlrl-
284284 0x4f 0x40 0x00 0x21
285285
286 # CHECK: bclr 10, 2, 0
286 # CHECK: bclr 10, 2
287287 0x4d 0x42 0x00 0x20
288288
289 # CHECK: bclrl 10, 2, 0
289 # CHECK: bclrl 10, 2
290290 0x4d 0x42 0x00 0x21
291291
292 # CHECK: bclr 2, 2, 0
292 # CHECK: bclr 2, 2
293293 0x4c 0x42 0x00 0x20
294294
295 # CHECK: bclrl 2, 2, 0
295 # CHECK: bclrl 2, 2
296296 0x4c 0x42 0x00 0x21
297297
298298 # FIXME: decode as bltlr 2
299 # CHECK: bclr 12, 8, 0
299 # CHECK: bclr 12, 8
300300 0x4d 0x88 0x00 0x20
301301
302302 # FIXME: decode as bltlr 0
303 # CHECK: bclr 12, 0, 0
303 # CHECK: bclr 12, 0
304304 0x4d 0x80 0x00 0x20
305305
306306 # FIXME: decode as bltctr 2
307 # CHECK: bcctr 12, 8, 0
307 # CHECK: bcctr 12, 8
308308 0x4d 0x88 0x04 0x20
309309
310310 # FIXME: decode as bltctr 0
311 # CHECK: bcctr 12, 0, 0
311 # CHECK: bcctr 12, 0
312312 0x4d 0x80 0x04 0x20
313313
314314 # FIXME: decode as bltlrl 2
315 # CHECK: bclrl 12, 8, 0
315 # CHECK: bclrl 12, 8
316316 0x4d 0x88 0x00 0x21
317317
318318 # FIXME: decode as bltlrl 0
319 # CHECK: bclrl 12, 0, 0
319 # CHECK: bclrl 12, 0
320320 0x4d 0x80 0x00 0x21
321321
322322 # FIXME: decode as bltctrl 2
323 # CHECK: bcctrl 12, 8, 0
323 # CHECK: bcctrl 12, 8
324324 0x4d 0x88 0x04 0x21
325325
326326 # FIXME: decode as bltctrl 0
327 # CHECK: bcctrl 12, 0, 0
327 # CHECK: bcctrl 12, 0
328328 0x4d 0x80 0x04 0x21
329329
330330 # FIXME: decode as bltlr+ 2
331 # CHECK: bclr 15, 8, 0
331 # CHECK: bclr 15, 8
332332 0x4d 0xe8 0x00 0x20
333333
334334 # FIXME: decode as bltlr+ 0
335 # CHECK: bclr 15, 0, 0
335 # CHECK: bclr 15, 0
336336 0x4d 0xe0 0x00 0x20
337337
338338 # FIXME: decode as bltctr+ 2
339 # CHECK: bcctr 15, 8, 0
339 # CHECK: bcctr 15, 8
340340 0x4d 0xe8 0x04 0x20
341341
342342 # FIXME: decode as bltctr+ 0
343 # CHECK: bcctr 15, 0, 0
343 # CHECK: bcctr 15, 0
344344 0x4d 0xe0 0x04 0x20
345345
346346 # FIXME: decode as bltlrl+ 2
347 # CHECK: bclrl 15, 8, 0
347 # CHECK: bclrl 15, 8
348348 0x4d 0xe8 0x00 0x21
349349
350350 # FIXME: decode as bltlrl+ 0
351 # CHECK: bclrl 15, 0, 0
351 # CHECK: bclrl 15, 0
352352 0x4d 0xe0 0x00 0x21
353353
354354 # FIXME: decode as bltctrl+ 2
355 # CHECK: bcctrl 15, 8, 0
355 # CHECK: bcctrl 15, 8
356356 0x4d 0xe8 0x04 0x21
357357
358358 # FIXME: decode as bltctrl+ 0
359 # CHECK: bcctrl 15, 0, 0
359 # CHECK: bcctrl 15, 0
360360 0x4d 0xe0 0x04 0x21
361361
362362 # FIXME: decode as bltlr- 2
363 # CHECK: bclr 14, 8, 0
363 # CHECK: bclr 14, 8
364364 0x4d 0xc8 0x00 0x20
365365
366366 # FIXME: decode as bltlr- 0
367 # CHECK: bclr 14, 0, 0
367 # CHECK: bclr 14, 0
368368 0x4d 0xc0 0x00 0x20
369369
370370 # FIXME: decode as bltctr- 2
371 # CHECK: bcctr 14, 8, 0
371 # CHECK: bcctr 14, 8
372372 0x4d 0xc8 0x04 0x20
373373
374374 # FIXME: decode as bltctr- 0
375 # CHECK: bcctr 14, 0, 0
375 # CHECK: bcctr 14, 0
376376 0x4d 0xc0 0x04 0x20
377377
378378 # FIXME: decode as bltlrl- 2
379 # CHECK: bclrl 14, 8, 0
379 # CHECK: bclrl 14, 8
380380 0x4d 0xc8 0x00 0x21
381381
382382 # FIXME: decode as bltlrl- 0
383 # CHECK: bclrl 14, 0, 0
383 # CHECK: bclrl 14, 0
384384 0x4d 0xc0 0x00 0x21
385385
386386 # FIXME: decode as bltctrl- 2
387 # CHECK: bcctrl 14, 8, 0
387 # CHECK: bcctrl 14, 8
388388 0x4d 0xc8 0x04 0x21
389389
390390 # FIXME: decode as bltctrl- 0
391 # CHECK: bcctrl 14, 0, 0
391 # CHECK: bcctrl 14, 0
392392 0x4d 0xc0 0x04 0x21
393393
394394 # FIXME: decode as blelr 2
395 # CHECK: bclr 4, 9, 0
395 # CHECK: bclr 4, 9
396396 0x4c 0x89 0x00 0x20
397397
398398 # FIXME: decode as blelr 0
399 # CHECK: bclr 4, 1, 0
399 # CHECK: bclr 4, 1
400400 0x4c 0x81 0x00 0x20
401401
402402 # FIXME: decode as blectr 2
403 # CHECK: bcctr 4, 9, 0
403 # CHECK: bcctr 4, 9
404404 0x4c 0x89 0x04 0x20
405405
406406 # FIXME: decode as blectr 0
407 # CHECK: bcctr 4, 1, 0
407 # CHECK: bcctr 4, 1
408408 0x4c 0x81 0x04 0x20
409409
410410 # FIXME: decode as blelrl 2
411 # CHECK: bclrl 4, 9, 0
411 # CHECK: bclrl 4, 9
412412 0x4c 0x89 0x00 0x21
413413
414414 # FIXME: decode as blelrl 0
415 # CHECK: bclrl 4, 1, 0
415 # CHECK: bclrl 4, 1
416416 0x4c 0x81 0x00 0x21
417417
418418 # FIXME: decode as blectrl 2
419 # CHECK: bcctrl 4, 9, 0
419 # CHECK: bcctrl 4, 9
420420 0x4c 0x89 0x04 0x21
421421
422422 # FIXME: decode as blectrl 0
423 # CHECK: bcctrl 4, 1, 0
423 # CHECK: bcctrl 4, 1
424424 0x4c 0x81 0x04 0x21
425425
426426 # FIXME: decode as blelr+ 2
427 # CHECK: bclr 7, 9, 0
427 # CHECK: bclr 7, 9
428428 0x4c 0xe9 0x00 0x20
429429
430430 # FIXME: decode as blelr+ 0
431 # CHECK: bclr 7, 1, 0
431 # CHECK: bclr 7, 1
432432 0x4c 0xe1 0x00 0x20
433433
434434 # FIXME: decode as blectr+ 2
435 # CHECK: bcctr 7, 9, 0
435 # CHECK: bcctr 7, 9
436436 0x4c 0xe9 0x04 0x20
437437
438438 # FIXME: decode as blectr+ 0
439 # CHECK: bcctr 7, 1, 0
439 # CHECK: bcctr 7, 1
440440 0x4c 0xe1 0x04 0x20
441441
442442 # FIXME: decode as blelrl+ 2
443 # CHECK: bclrl 7, 9, 0
443 # CHECK: bclrl 7, 9
444444 0x4c 0xe9 0x00 0x21
445445
446446 # FIXME: decode as blelrl+ 0
447 # CHECK: bclrl 7, 1, 0
447 # CHECK: bclrl 7, 1
448448 0x4c 0xe1 0x00 0x21
449449
450450 # FIXME: decode as blectrl+ 2
451 # CHECK: bcctrl 7, 9, 0
451 # CHECK: bcctrl 7, 9
452452 0x4c 0xe9 0x04 0x21
453453
454454 # FIXME: decode as blectrl+ 0
455 # CHECK: bcctrl 7, 1, 0
455 # CHECK: bcctrl 7, 1
456456 0x4c 0xe1 0x04 0x21
457457
458458 # FIXME: decode as blelr- 2
459 # CHECK: bclr 6, 9, 0
459 # CHECK: bclr 6, 9
460460 0x4c 0xc9 0x00 0x20
461461
462462 # FIXME: decode as blelr- 0
463 # CHECK: bclr 6, 1, 0
463 # CHECK: bclr 6, 1
464464 0x4c 0xc1 0x00 0x20
465465
466466 # FIXME: decode as blectr- 2
467 # CHECK: bcctr 6, 9, 0
467 # CHECK: bcctr 6, 9
468468 0x4c 0xc9 0x04 0x20
469469
470470 # FIXME: decode as blectr- 0
471 # CHECK: bcctr 6, 1, 0
471 # CHECK: bcctr 6, 1
472472 0x4c 0xc1 0x04 0x20
473473
474474 # FIXME: decode as blelrl- 2
475 # CHECK: bclrl 6, 9, 0
475 # CHECK: bclrl 6, 9
476476 0x4c 0xc9 0x00 0x21
477477
478478 # FIXME: decode as blelrl- 0
479 # CHECK: bclrl 6, 1, 0
479 # CHECK: bclrl 6, 1
480480 0x4c 0xc1 0x00 0x21
481481
482482 # FIXME: decode as blectrl- 2
483 # CHECK: bcctrl 6, 9, 0
483 # CHECK: bcctrl 6, 9
484484 0x4c 0xc9 0x04 0x21
485485
486486 # FIXME: decode as blectrl- 0
487 # CHECK: bcctrl 6, 1, 0
487 # CHECK: bcctrl 6, 1
488488 0x4c 0xc1 0x04 0x21
489489
490490 # FIXME: decode as beqlr 2
491 # CHECK: bclr 12, 10, 0
491 # CHECK: bclr 12, 10
492492 0x4d 0x8a 0x00 0x20
493493
494494 # FIXME: decode as beqlr 0
495 # CHECK: bclr 12, 2, 0
495 # CHECK: bclr 12, 2
496496 0x4d 0x82 0x00 0x20
497497
498498 # FIXME: decode as beqctr 2
499 # CHECK: bcctr 12, 10, 0
499 # CHECK: bcctr 12, 10
500500 0x4d 0x8a 0x04 0x20
501501
502502 # FIXME: decode as beqctr 0
503 # CHECK: bcctr 12, 2, 0
503 # CHECK: bcctr 12, 2
504504 0x4d 0x82 0x04 0x20
505505
506506 # FIXME: decode as beqlrl 2
507 # CHECK: bclrl 12, 10, 0
507 # CHECK: bclrl 12, 10
508508 0x4d 0x8a 0x00 0x21
509509
510510 # FIXME: decode as beqlrl 0
511 # CHECK: bclrl 12, 2, 0
511 # CHECK: bclrl 12, 2
512512 0x4d 0x82 0x00 0x21
513513
514514 # FIXME: decode as beqctrl 2
515 # CHECK: bcctrl 12, 10, 0
515 # CHECK: bcctrl 12, 10
516516 0x4d 0x8a 0x04 0x21
517517
518518 # FIXME: decode as beqctrl 0
519 # CHECK: bcctrl 12, 2, 0
519 # CHECK: bcctrl 12, 2
520520 0x4d 0x82 0x04 0x21
521521
522522 # FIXME: decode as beqlr+ 2
523 # CHECK: bclr 15, 10, 0
523 # CHECK: bclr 15, 10
524524 0x4d 0xea 0x00 0x20
525525
526526 # FIXME: decode as beqlr+ 0
527 # CHECK: bclr 15, 2, 0
527 # CHECK: bclr 15, 2
528528 0x4d 0xe2 0x00 0x20
529529
530530 # FIXME: decode as beqctr+ 2
531 # CHECK: bcctr 15, 10, 0
531 # CHECK: bcctr 15, 10
532532 0x4d 0xea 0x04 0x20
533533
534534 # FIXME: decode as beqctr+ 0
535 # CHECK: bcctr 15, 2, 0
535 # CHECK: bcctr 15, 2
536536 0x4d 0xe2 0x04 0x20
537537
538538 # FIXME: decode as beqlrl+ 2
539 # CHECK: bclrl 15, 10, 0
539 # CHECK: bclrl 15, 10
540540 0x4d 0xea 0x00 0x21
541541
542542 # FIXME: decode as beqlrl+ 0
543 # CHECK: bclrl 15, 2, 0
543 # CHECK: bclrl 15, 2
544544 0x4d 0xe2 0x00 0x21
545545
546546 # FIXME: decode as beqctrl+ 2
547 # CHECK: bcctrl 15, 10, 0
547 # CHECK: bcctrl 15, 10
548548 0x4d 0xea 0x04 0x21
549549
550550 # FIXME: decode as beqctrl+ 0
551 # CHECK: bcctrl 15, 2, 0
551 # CHECK: bcctrl 15, 2
552552 0x4d 0xe2 0x04 0x21
553553
554554 # FIXME: decode as beqlr- 2
555 # CHECK: bclr 14, 10, 0
555 # CHECK: bclr 14, 10
556556 0x4d 0xca 0x00 0x20
557557
558558 # FIXME: decode as beqlr- 0
559 # CHECK: bclr 14, 2, 0
559 # CHECK: bclr 14, 2
560560 0x4d 0xc2 0x00 0x20
561561
562562 # FIXME: decode as beqctr- 2
563 # CHECK: bcctr 14, 10, 0
563 # CHECK: bcctr 14, 10
564564 0x4d 0xca 0x04 0x20
565565
566566 # FIXME: decode as beqctr- 0
567 # CHECK: bcctr 14, 2, 0
567 # CHECK: bcctr 14, 2
568568 0x4d 0xc2 0x04 0x20
569569
570570 # FIXME: decode as beqlrl- 2
571 # CHECK: bclrl 14, 10, 0
571 # CHECK: bclrl 14, 10
572572 0x4d 0xca 0x00 0x21
573573
574574 # FIXME: decode as beqlrl- 0
575 # CHECK: bclrl 14, 2, 0
575 # CHECK: bclrl 14, 2
576576 0x4d 0xc2 0x00 0x21
577577
578578 # FIXME: decode as beqctrl- 2
579 # CHECK: bcctrl 14, 10, 0
579 # CHECK: bcctrl 14, 10
580580 0x4d 0xca 0x04 0x21
581581
582582 # FIXME: decode as beqctrl- 0
583 # CHECK: bcctrl 14, 2, 0
583 # CHECK: bcctrl 14, 2
584584 0x4d 0xc2 0x04 0x21
585585
586586 # FIXME: decode as bgelr 2
587 # CHECK: bclr 4, 8, 0
587 # CHECK: bclr 4, 8
588588 0x4c 0x88 0x00 0x20
589589
590590 # FIXME: decode as bgelr 0
591 # CHECK: bclr 4, 0, 0
591 # CHECK: bclr 4, 0
592592 0x4c 0x80 0x00 0x20
593593
594594 # FIXME: decode as bgectr 2
595 # CHECK: bcctr 4, 8, 0
595 # CHECK: bcctr 4, 8
596596 0x4c 0x88 0x04 0x20
597597
598598 # FIXME: decode as bgectr 0
599 # CHECK: bcctr 4, 0, 0
599 # CHECK: bcctr 4, 0
600600 0x4c 0x80 0x04 0x20
601601
602602 # FIXME: decode as bgelrl 2
603 # CHECK: bclrl 4, 8, 0
603 # CHECK: bclrl 4, 8
604604 0x4c 0x88 0x00 0x21
605605
606606 # FIXME: decode as bgelrl 0
607 # CHECK: bclrl 4, 0, 0
607 # CHECK: bclrl 4, 0
608608 0x4c 0x80 0x00 0x21
609609
610610 # FIXME: decode as bgectrl 2
611 # CHECK: bcctrl 4, 8, 0
611 # CHECK: bcctrl 4, 8
612612 0x4c 0x88 0x04 0x21
613613
614614 # FIXME: decode as bgectrl 0
615 # CHECK: bcctrl 4, 0, 0
615 # CHECK: bcctrl 4, 0
616616 0x4c 0x80 0x04 0x21
617617
618618 # FIXME: decode as bgelr+ 2
619 # CHECK: bclr 7, 8, 0
619 # CHECK: bclr 7, 8
620620 0x4c 0xe8 0x00 0x20
621621
622622 # FIXME: decode as bgelr+ 0
623 # CHECK: bclr 7, 0, 0
623 # CHECK: bclr 7, 0
624624 0x4c 0xe0 0x00 0x20
625625
626626 # FIXME: decode as bgectr+ 2
627 # CHECK: bcctr 7, 8, 0
627 # CHECK: bcctr 7, 8
628628 0x4c 0xe8 0x04 0x20
629629
630630 # FIXME: decode as bgectr+ 0
631 # CHECK: bcctr 7, 0, 0
631 # CHECK: bcctr 7, 0
632632 0x4c 0xe0 0x04 0x20
633633
634634 # FIXME: decode as bgelrl+ 2
635 # CHECK: bclrl 7, 8, 0
635 # CHECK: bclrl 7, 8
636636 0x4c 0xe8 0x00 0x21
637637
638638 # FIXME: decode as bgelrl+ 0
639 # CHECK: bclrl 7, 0, 0
639 # CHECK: bclrl 7, 0
640640 0x4c 0xe0 0x00 0x21
641641
642642 # FIXME: decode as bgectrl+ 2
643 # CHECK: bcctrl 7, 8, 0
643 # CHECK: bcctrl 7, 8
644644 0x4c 0xe8 0x04 0x21
645645
646646 # FIXME: decode as bgectrl+ 0
647 # CHECK: bcctrl 7, 0, 0
647 # CHECK: bcctrl 7, 0
648648 0x4c 0xe0 0x04 0x21
649649
650650 # FIXME: decode as bgelr- 2
651 # CHECK: bclr 6, 8, 0
651 # CHECK: bclr 6, 8
652652 0x4c 0xc8 0x00 0x20
653653
654654 # FIXME: decode as bgelr- 0
655 # CHECK: bclr 6, 0, 0
655 # CHECK: bclr 6, 0
656656 0x4c 0xc0 0x00 0x20
657657
658658 # FIXME: decode as bgectr- 2
659 # CHECK: bcctr 6, 8, 0
659 # CHECK: bcctr 6, 8
660660 0x4c 0xc8 0x04 0x20
661661
662662 # FIXME: decode as bgectr- 0
663 # CHECK: bcctr 6, 0, 0
663 # CHECK: bcctr 6, 0
664664 0x4c 0xc0 0x04 0x20
665665
666666 # FIXME: decode as bgelrl- 2
667 # CHECK: bclrl 6, 8, 0
667 # CHECK: bclrl 6, 8
668668 0x4c 0xc8 0x00 0x21
669669
670670 # FIXME: decode as bgelrl- 0
671 # CHECK: bclrl 6, 0, 0
671 # CHECK: bclrl 6, 0
672672 0x4c 0xc0 0x00 0x21
673673
674674 # FIXME: decode as bgectrl- 2
675 # CHECK: bcctrl 6, 8, 0
675 # CHECK: bcctrl 6, 8
676676 0x4c 0xc8 0x04 0x21
677677
678678 # FIXME: decode as bgectrl- 0
679 # CHECK: bcctrl 6, 0, 0
679 # CHECK: bcctrl 6, 0
680680 0x4c 0xc0 0x04 0x21
681681
682682 # FIXME: decode as bgtlr 2
683 # CHECK: bclr 12, 9, 0
683 # CHECK: bclr 12, 9
684684 0x4d 0x89 0x00 0x20
685685
686686 # FIXME: decode as bgtlr 0
687 # CHECK: bclr 12, 1, 0
687 # CHECK: bclr 12, 1
688688 0x4d 0x81 0x00 0x20
689689
690690 # FIXME: decode as bgtctr 2
691 # CHECK: bcctr 12, 9, 0
691 # CHECK: bcctr 12, 9
692692 0x4d 0x89 0x04 0x20
693693
694694 # FIXME: decode as bgtctr 0
695 # CHECK: bcctr 12, 1, 0
695 # CHECK: bcctr 12, 1
696696 0x4d 0x81 0x04 0x20
697697
698698 # FIXME: decode as bgtlrl 2
699 # CHECK: bclrl 12, 9, 0
699 # CHECK: bclrl 12, 9
700700 0x4d 0x89 0x00 0x21
701701
702702 # FIXME: decode as bgtlrl 0
703 # CHECK: bclrl 12, 1, 0
703 # CHECK: bclrl 12, 1
704704 0x4d 0x81 0x00 0x21
705705
706706 # FIXME: decode as bgtctrl 2
707 # CHECK: bcctrl 12, 9, 0
707 # CHECK: bcctrl 12, 9
708708 0x4d 0x89 0x04 0x21
709709
710710 # FIXME: decode as bgtctrl 0
711 # CHECK: bcctrl 12, 1, 0
711 # CHECK: bcctrl 12, 1
712712 0x4d 0x81 0x04 0x21
713713
714714 # FIXME: decode as bgtlr+ 2
715 # CHECK: bclr 15, 9, 0
715 # CHECK: bclr 15, 9
716716 0x4d 0xe9 0x00 0x20
717717
718718 # FIXME: decode as bgtlr+ 0
719 # CHECK: bclr 15, 1, 0
719 # CHECK: bclr 15, 1
720720 0x4d 0xe1 0x00 0x20
721721
722722 # FIXME: decode as bgtctr+ 2
723 # CHECK: bcctr 15, 9, 0
723 # CHECK: bcctr 15, 9
724724 0x4d 0xe9 0x04 0x20
725725
726726 # FIXME: decode as bgtctr+ 0
727 # CHECK: bcctr 15, 1, 0
727 # CHECK: bcctr 15, 1
728728 0x4d 0xe1 0x04 0x20
729729
730730 # FIXME: decode as bgtlrl+ 2
731 # CHECK: bclrl 15, 9, 0
731 # CHECK: bclrl 15, 9
732732 0x4d 0xe9 0x00 0x21
733733
734734 # FIXME: decode as bgtlrl+ 0
735 # CHECK: bclrl 15, 1, 0
735 # CHECK: bclrl 15, 1
736736 0x4d 0xe1 0x00 0x21
737737
738738 # FIXME: decode as bgtctrl+ 2
739 # CHECK: bcctrl 15, 9, 0
739 # CHECK: bcctrl 15, 9
740740 0x4d 0xe9 0x04 0x21
741741
742742 # FIXME: decode as bgtctrl+ 0
743 # CHECK: bcctrl 15, 1, 0
743 # CHECK: bcctrl 15, 1
744744 0x4d 0xe1 0x04 0x21
745745
746746 # FIXME: decode as bgtlr- 2
747 # CHECK: bclr 14, 9, 0
747 # CHECK: bclr 14, 9
748748 0x4d 0xc9 0x00 0x20
749749
750750 # FIXME: decode as bgtlr- 0
751 # CHECK: bclr 14, 1, 0
751 # CHECK: bclr 14, 1
752752 0x4d 0xc1 0x00 0x20
753753
754754 # FIXME: decode as bgtctr- 2
755 # CHECK: bcctr 14, 9, 0
755 # CHECK: bcctr 14, 9
756756 0x4d 0xc9 0x04 0x20
757757
758758 # FIXME: decode as bgtctr- 0
759 # CHECK: bcctr 14, 1, 0
759 # CHECK: bcctr 14, 1
760760 0x4d 0xc1 0x04 0x20
761761
762762 # FIXME: decode as bgtlrl- 2
763 # CHECK: bclrl 14, 9, 0
763 # CHECK: bclrl 14, 9
764764 0x4d 0xc9 0x00 0x21
765765
766766 # FIXME: decode as bgtlrl- 0
767 # CHECK: bclrl 14, 1, 0
767 # CHECK: bclrl 14, 1
768768 0x4d 0xc1 0x00 0x21
769769
770770 # FIXME: decode as bgtctrl- 2
771 # CHECK: bcctrl 14, 9, 0
771 # CHECK: bcctrl 14, 9
772772 0x4d 0xc9 0x04 0x21
773773
774774 # FIXME: decode as bgtctrl- 0
775 # CHECK: bcctrl 14, 1, 0
775 # CHECK: bcctrl 14, 1
776776 0x4d 0xc1 0x04 0x21
777777
778778 # FIXME: decode as bgelr 2
779 # CHECK: bclr 4, 8, 0
779 # CHECK: bclr 4, 8
780780 0x4c 0x88 0x00 0x20
781781
782782 # FIXME: decode as bgelr 0
783 # CHECK: bclr 4, 0, 0
783 # CHECK: bclr 4, 0
784784 0x4c 0x80 0x00 0x20
785785
786786 # FIXME: decode as bgectr 2
787 # CHECK: bcctr 4, 8, 0
787 # CHECK: bcctr 4, 8
788788 0x4c 0x88 0x04 0x20
789789
790790 # FIXME: decode as bgectr 0
791 # CHECK: bcctr 4, 0, 0
791 # CHECK: bcctr 4, 0
792792 0x4c 0x80 0x04 0x20
793793
794794 # FIXME: decode as bgelrl 2
795 # CHECK: bclrl 4, 8, 0
795 # CHECK: bclrl 4, 8
796796 0x4c 0x88 0x00 0x21
797797
798798 # FIXME: decode as bgelrl 0
799 # CHECK: bclrl 4, 0, 0
799 # CHECK: bclrl 4, 0
800800 0x4c 0x80 0x00 0x21
801801
802802 # FIXME: decode as bgectrl 2
803 # CHECK: bcctrl 4, 8, 0
803 # CHECK: bcctrl 4, 8
804804 0x4c 0x88 0x04 0x21
805805
806806 # FIXME: decode as bgectrl 0
807 # CHECK: bcctrl 4, 0, 0
807 # CHECK: bcctrl 4, 0
808808 0x4c 0x80 0x04 0x21
809809
810810 # FIXME: decode as bgelr+ 2
811 # CHECK: bclr 7, 8, 0
811 # CHECK: bclr 7, 8
812812 0x4c 0xe8 0x00 0x20
813813
814814 # FIXME: decode as bgelr+ 0
815 # CHECK: bclr 7, 0, 0
815 # CHECK: bclr 7, 0
816816 0x4c 0xe0 0x00 0x20
817817
818818 # FIXME: decode as bgectr+ 2
819 # CHECK: bcctr 7, 8, 0
819 # CHECK: bcctr 7, 8
820820 0x4c 0xe8 0x04 0x20
821821
822822 # FIXME: decode as bgectr+ 0
823 # CHECK: bcctr 7, 0, 0
823 # CHECK: bcctr 7, 0
824824 0x4c 0xe0 0x04 0x20
825825
826826 # FIXME: decode as bgelrl+ 2
827 # CHECK: bclrl 7, 8, 0
827 # CHECK: bclrl 7, 8
828828 0x4c 0xe8 0x00 0x21
829829
830830 # FIXME: decode as bgelrl+ 0
831 # CHECK: bclrl 7, 0, 0
831 # CHECK: bclrl 7, 0
832832 0x4c 0xe0 0x00 0x21
833833
834834 # FIXME: decode as bgectrl+ 2
835 # CHECK: bcctrl 7, 8, 0
835 # CHECK: bcctrl 7, 8
836836 0x4c 0xe8 0x04 0x21
837837
838838 # FIXME: decode as bgectrl+ 0
839 # CHECK: bcctrl 7, 0, 0
839 # CHECK: bcctrl 7, 0
840840 0x4c 0xe0 0x04 0x21
841841
842842 # FIXME: decode as bgelr- 2
843 # CHECK: bclr 6, 8, 0
843 # CHECK: bclr 6, 8
844844 0x4c 0xc8 0x00 0x20
845845
846846 # FIXME: decode as bgelr- 0
847 # CHECK: bclr 6, 0, 0
847 # CHECK: bclr 6, 0
848848 0x4c 0xc0 0x00 0x20
849849
850850 # FIXME: decode as bgectr- 2
851 # CHECK: bcctr 6, 8, 0
851 # CHECK: bcctr 6, 8
852852 0x4c 0xc8 0x04 0x20
853853
854854 # FIXME: decode as bgectr- 0
855 # CHECK: bcctr 6, 0, 0
855 # CHECK: bcctr 6, 0
856856 0x4c 0xc0 0x04 0x20
857857
858858 # FIXME: decode as bgelrl- 2
859 # CHECK: bclrl 6, 8, 0
859 # CHECK: bclrl 6, 8
860860 0x4c 0xc8 0x00 0x21
861861
862862 # FIXME: decode as bgelrl- 0
863 # CHECK: bclrl 6, 0, 0
863 # CHECK: bclrl 6, 0
864864 0x4c 0xc0 0x00 0x21
865865
866866 # FIXME: decode as bgectrl- 2
867 # CHECK: bcctrl 6, 8, 0
867 # CHECK: bcctrl 6, 8
868868 0x4c 0xc8 0x04 0x21
869869
870870 # FIXME: decode as bgectrl- 0
871 # CHECK: bcctrl 6, 0, 0
871 # CHECK: bcctrl 6, 0
872872 0x4c 0xc0 0x04 0x21
873873
874874 # FIXME: decode as bnelr 2
875 # CHECK: bclr 4, 10, 0
875 # CHECK: bclr 4, 10
876876 0x4c 0x8a 0x00 0x20
877877
878878 # FIXME: decode as bnelr 0
879 # CHECK: bclr 4, 2, 0
879 # CHECK: bclr 4, 2
880880 0x4c 0x82 0x00 0x20
881881
882882 # FIXME: decode as bnectr 2
883 # CHECK: bcctr 4, 10, 0
883 # CHECK: bcctr 4, 10
884884 0x4c 0x8a 0x04 0x20
885885
886886 # FIXME: decode as bnectr 0
887 # CHECK: bcctr 4, 2, 0
887 # CHECK: bcctr 4, 2
888888 0x4c 0x82 0x04 0x20
889889
890890 # FIXME: decode as bnelrl 2
891 # CHECK: bclrl 4, 10, 0
891 # CHECK: bclrl 4, 10
892892 0x4c 0x8a 0x00 0x21
893893
894894 # FIXME: decode as bnelrl 0
895 # CHECK: bclrl 4, 2, 0
895 # CHECK: bclrl 4, 2
896896 0x4c 0x82 0x00 0x21
897897
898898 # FIXME: decode as bnectrl 2
899 # CHECK: bcctrl 4, 10, 0
899 # CHECK: bcctrl 4, 10
900900 0x4c 0x8a 0x04 0x21
901901
902902 # FIXME: decode as bnectrl 0
903 # CHECK: bcctrl 4, 2, 0
903 # CHECK: bcctrl 4, 2
904904 0x4c 0x82 0x04 0x21
905905
906906 # FIXME: decode as bnelr+ 2
907 # CHECK: bclr 7, 10, 0
907 # CHECK: bclr 7, 10
908908 0x4c 0xea 0x00 0x20
909909
910910 # FIXME: decode as bnelr+ 0
911 # CHECK: bclr 7, 2, 0
911 # CHECK: bclr 7, 2
912912 0x4c 0xe2 0x00 0x20
913913
914914 # FIXME: decode as bnectr+ 2
915 # CHECK: bcctr 7, 10, 0
915 # CHECK: bcctr 7, 10
916916 0x4c 0xea 0x04 0x20
917917
918918 # FIXME: decode as bnectr+ 0
919 # CHECK: bcctr 7, 2, 0
919 # CHECK: bcctr 7, 2
920920 0x4c 0xe2 0x04 0x20
921921
922922 # FIXME: decode as bnelrl+ 2
923 # CHECK: bclrl 7, 10, 0
923 # CHECK: bclrl 7, 10
924924 0x4c 0xea 0x00 0x21
925925
926926 # FIXME: decode as bnelrl+ 0
927 # CHECK: bclrl 7, 2, 0
927 # CHECK: bclrl 7, 2
928928 0x4c 0xe2 0x00 0x21
929929
930930 # FIXME: decode as bnectrl+ 2
931 # CHECK: bcctrl 7, 10, 0
931 # CHECK: bcctrl 7, 10
932932 0x4c 0xea 0x04 0x21
933933
934934 # FIXME: decode as bnectrl+ 0
935 # CHECK: bcctrl 7, 2, 0
935 # CHECK: bcctrl 7, 2
936936 0x4c 0xe2 0x04 0x21
937937
938938 # FIXME: decode as bnelr- 2
939 # CHECK: bclr 6, 10, 0
939 # CHECK: bclr 6, 10
940940 0x4c 0xca 0x00 0x20
941941
942942 # FIXME: decode as bnelr- 0
943 # CHECK: bclr 6, 2, 0
943 # CHECK: bclr 6, 2
944944 0x4c 0xc2 0x00 0x20
945945
946946 # FIXME: decode as bnectr- 2
947 # CHECK: bcctr 6, 10, 0
947 # CHECK: bcctr 6, 10
948948 0x4c 0xca 0x04 0x20
949949
950950 # FIXME: decode as bnectr- 0
951 # CHECK: bcctr 6, 2, 0
951 # CHECK: bcctr 6, 2
952952 0x4c 0xc2 0x04 0x20
953953
954954 # FIXME: decode as bnelrl- 2
955 # CHECK: bclrl 6, 10, 0
955 # CHECK: bclrl 6, 10
956956 0x4c 0xca 0x00 0x21
957957
958958 # FIXME: decode as bnelrl- 0
959 # CHECK: bclrl 6, 2, 0
959 # CHECK: bclrl 6, 2
960960 0x4c 0xc2 0x00 0x21
961961
962962 # FIXME: decode as bnectrl- 2
963 # CHECK: bcctrl 6, 10, 0
963 # CHECK: bcctrl 6, 10
964964 0x4c 0xca 0x04 0x21
965965
966966 # FIXME: decode as bnectrl- 0
967 # CHECK: bcctrl 6, 2, 0
967 # CHECK: bcctrl 6, 2
968968 0x4c 0xc2 0x04 0x21
969969
970970 # FIXME: decode as blelr 2
971 # CHECK: bclr 4, 9, 0
971 # CHECK: bclr 4, 9
972972 0x4c 0x89 0x00 0x20
973973
974974 # FIXME: decode as blelr 0
975 # CHECK: bclr 4, 1, 0
975 # CHECK: bclr 4, 1
976976 0x4c 0x81 0x00 0x20
977977
978978 # FIXME: decode as blectr 2
979 # CHECK: bcctr 4, 9, 0
979 # CHECK: bcctr 4, 9
980980 0x4c 0x89 0x04 0x20
981981
982982 # FIXME: decode as blectr 0
983 # CHECK: bcctr 4, 1, 0
983 # CHECK: bcctr 4, 1
984984 0x4c 0x81 0x04 0x20
985985
986986 # FIXME: decode as blelrl 2
987 # CHECK: bclrl 4, 9, 0
987 # CHECK: bclrl 4, 9
988988 0x4c 0x89 0x00 0x21
989989
990990 # FIXME: decode as blelrl 0
991 # CHECK: bclrl 4, 1, 0
991 # CHECK: bclrl 4, 1
992992 0x4c 0x81 0x00 0x21
993993
994994 # FIXME: decode as blectrl 2
995 # CHECK: bcctrl 4, 9, 0
995 # CHECK: bcctrl 4, 9
996996 0x4c 0x89 0x04 0x21
997997
998998 # FIXME: decode as blectrl 0
999 # CHECK: bcctrl 4, 1, 0
999 # CHECK: bcctrl 4, 1
10001000 0x4c 0x81 0x04 0x21
10011001
10021002 # FIXME: decode as blelr+ 2
1003 # CHECK: bclr 7, 9, 0
1003 # CHECK: bclr 7, 9
10041004 0x4c 0xe9 0x00 0x20
10051005
10061006 # FIXME: decode as blelr+ 0
1007 # CHECK: bclr 7, 1, 0
1007 # CHECK: bclr 7, 1
10081008 0x4c 0xe1 0x00 0x20
10091009
10101010 # FIXME: decode as blectr+ 2
1011 # CHECK: bcctr 7, 9, 0
1011 # CHECK: bcctr 7, 9
10121012 0x4c 0xe9 0x04 0x20
10131013
10141014 # FIXME: decode as blectr+ 0
1015 # CHECK: bcctr 7, 1, 0
1015 # CHECK: bcctr 7, 1
10161016 0x4c 0xe1 0x04 0x20
10171017
10181018 # FIXME: decode as blelrl+ 2
1019 # CHECK: bclrl 7, 9, 0
1019 # CHECK: bclrl 7, 9
10201020 0x4c 0xe9 0x00 0x21
10211021
10221022 # FIXME: decode as blelrl+ 0
1023 # CHECK: bclrl 7, 1, 0
1023 # CHECK: bclrl 7, 1
10241024 0x4c 0xe1 0x00 0x21
10251025
10261026 # FIXME: decode as blectrl+ 2
1027 # CHECK: bcctrl 7, 9, 0
1027 # CHECK: bcctrl 7, 9
10281028 0x4c 0xe9 0x04 0x21
10291029
10301030 # FIXME: decode as blectrl+ 0
1031 # CHECK: bcctrl 7, 1, 0
1031 # CHECK: bcctrl 7, 1
10321032 0x4c 0xe1 0x04 0x21
10331033
10341034 # FIXME: decode as blelr- 2
1035 # CHECK: bclr 6, 9, 0
1035 # CHECK: bclr 6, 9
10361036 0x4c 0xc9 0x00 0x20
10371037
10381038 # FIXME: decode as blelr- 0
1039 # CHECK: bclr 6, 1, 0
1039 # CHECK: bclr 6, 1
10401040 0x4c 0xc1 0x00 0x20
10411041
10421042 # FIXME: decode as blectr- 2
1043 # CHECK: bcctr 6, 9, 0
1043 # CHECK: bcctr 6, 9
10441044 0x4c 0xc9 0x04 0x20
10451045
10461046 # FIXME: decode as blectr- 0
1047 # CHECK: bcctr 6, 1, 0
1047 # CHECK: bcctr 6, 1
10481048 0x4c 0xc1 0x04 0x20
10491049
10501050 # FIXME: decode as blelrl- 2
1051 # CHECK: bclrl 6, 9, 0
1051 # CHECK: bclrl 6, 9
10521052 0x4c 0xc9 0x00 0x21
10531053
10541054 # FIXME: decode as blelrl- 0
1055 # CHECK: bclrl 6, 1, 0
1055 # CHECK: bclrl 6, 1
10561056 0x4c 0xc1 0x00 0x21
10571057
10581058 # FIXME: decode as blectrl- 2
1059 # CHECK: bcctrl 6, 9, 0
1059 # CHECK: bcctrl 6, 9
10601060 0x4c 0xc9 0x04 0x21
10611061
10621062 # FIXME: decode as blectrl- 0
1063 # CHECK: bcctrl 6, 1, 0
1063 # CHECK: bcctrl 6, 1
10641064 0x4c 0xc1 0x04 0x21
10651065
10661066 # FIXME: decode as bunlr 2
1067 # CHECK: bclr 12, 11, 0
1067 # CHECK: bclr 12, 11
10681068 0x4d 0x8b 0x00 0x20
10691069
10701070 # FIXME: decode as bunlr 0
1071 # CHECK: bclr 12, 3, 0
1071 # CHECK: bclr 12, 3
10721072 0x4d 0x83 0x00 0x20
10731073
10741074 # FIXME: decode as bunctr 2
1075 # CHECK: bcctr 12, 11, 0
1075 # CHECK: bcctr 12, 11
10761076 0x4d 0x8b 0x04 0x20
10771077
10781078 # FIXME: decode as bunctr 0
1079 # CHECK: bcctr 12, 3, 0
1079 # CHECK: bcctr 12, 3
10801080 0x4d 0x83 0x04 0x20
10811081
10821082 # FIXME: decode as bunlrl 2
1083 # CHECK: bclrl 12, 11, 0
1083 # CHECK: bclrl 12, 11
10841084 0x4d 0x8b 0x00 0x21
10851085
10861086 # FIXME: decode as bunlrl 0
1087 # CHECK: bclrl 12, 3, 0
1087 # CHECK: bclrl 12, 3
10881088 0x4d 0x83 0x00 0x21
10891089
10901090 # FIXME: decode as bunctrl 2
1091 # CHECK: bcctrl 12, 11, 0
1091 # CHECK: bcctrl 12, 11
10921092 0x4d 0x8b 0x04 0x21
10931093
10941094 # FIXME: decode as bunctrl 0
1095 # CHECK: bcctrl 12, 3, 0
1095 # CHECK: bcctrl 12, 3
10961096 0x4d 0x83 0x04 0x21
10971097
10981098 # FIXME: decode as bunlr+ 2
1099 # CHECK: bclr 15, 11, 0
1099 # CHECK: bclr 15, 11
11001100 0x4d 0xeb 0x00 0x20
11011101
11021102 # FIXME: decode as bunlr+ 0
1103 # CHECK: bclr 15, 3, 0
1103 # CHECK: bclr 15, 3
11041104 0x4d 0xe3 0x00 0x20
11051105
11061106 # FIXME: decode as bunctr+ 2
1107 # CHECK: bcctr 15, 11, 0
1107 # CHECK: bcctr 15, 11
11081108 0x4d 0xeb 0x04 0x20
11091109
11101110 # FIXME: decode as bunctr+ 0
1111 # CHECK: bcctr 15, 3, 0
1111 # CHECK: bcctr 15, 3
11121112 0x4d 0xe3 0x04 0x20
11131113
11141114 # FIXME: decode as bunlrl+ 2
1115 # CHECK: bclrl 15, 11, 0
1115 # CHECK: bclrl 15, 11
11161116 0x4d 0xeb 0x00 0x21
11171117
11181118 # FIXME: decode as bunlrl+ 0
1119 # CHECK: bclrl 15, 3, 0
1119 # CHECK: bclrl 15, 3
11201120 0x4d 0xe3 0x00 0x21
11211121
11221122 # FIXME: decode as bunctrl+ 2
1123 # CHECK: bcctrl 15, 11, 0
1123 # CHECK: bcctrl 15, 11
11241124 0x4d 0xeb 0x04 0x21
11251125
11261126 # FIXME: decode as bunctrl+ 0
1127 # CHECK: bcctrl 15, 3, 0
1127 # CHECK: bcctrl 15, 3
11281128 0x4d 0xe3 0x04 0x21
11291129
11301130 # FIXME: decode as bunlr- 2
1131 # CHECK: bclr 14, 11, 0
1131 # CHECK: bclr 14, 11
11321132 0x4d 0xcb 0x00 0x20
11331133
11341134 # FIXME: decode as bunlr- 0
1135 # CHECK: bclr 14, 3, 0
1135 # CHECK: bclr 14, 3
11361136 0x4d 0xc3 0x00 0x20
11371137
11381138 # FIXME: decode as bunctr- 2
1139 # CHECK: bcctr 14, 11, 0
1139 # CHECK: bcctr 14, 11
11401140 0x4d 0xcb 0x04 0x20
11411141
11421142 # FIXME: decode as bunctr- 0
1143 # CHECK: bcctr 14, 3, 0
1143 # CHECK: bcctr 14, 3
11441144 0x4d 0xc3 0x04 0x20
11451145
11461146 # FIXME: decode as bunlrl- 2
1147 # CHECK: bclrl 14, 11, 0
1147 # CHECK: bclrl 14, 11
11481148 0x4d 0xcb 0x00 0x21
11491149
11501150 # FIXME: decode as bunlrl- 0
1151 # CHECK: bclrl 14, 3, 0
1151 # CHECK: bclrl 14, 3
11521152 0x4d 0xc3 0x00 0x21
11531153
11541154 # FIXME: decode as bunctrl- 2
1155 # CHECK: bcctrl 14, 11, 0
1155 # CHECK: bcctrl 14, 11
11561156 0x4d 0xcb 0x04 0x21
11571157
11581158 # FIXME: decode as bunctrl- 0
1159 # CHECK: bcctrl 14, 3, 0
1159 # CHECK: bcctrl 14, 3
11601160 0x4d 0xc3 0x04 0x21
11611161
11621162 # FIXME: decode as bnulr 2
1163 # CHECK: bclr 4, 11, 0
1163 # CHECK: bclr 4, 11
11641164 0x4c 0x8b 0x00 0x20
11651165
11661166 # FIXME: decode as bnulr 0
1167 # CHECK: bclr 4, 3, 0
1167 # CHECK: bclr 4, 3
11681168 0x4c 0x83 0x00 0x20
11691169
11701170 # FIXME: decode as bnuctr 2
1171 # CHECK: bcctr 4, 11, 0
1171 # CHECK: bcctr 4, 11
11721172 0x4c 0x8b 0x04 0x20
11731173
11741174 # FIXME: decode as bnuctr 0
1175 # CHECK: bcctr 4, 3, 0
1175 # CHECK: bcctr 4, 3
11761176 0x4c 0x83 0x04 0x20
11771177
11781178 # FIXME: decode as bnulrl 2
1179 # CHECK: bclrl 4, 11, 0
1179 # CHECK: bclrl 4, 11
11801180 0x4c 0x8b 0x00 0x21
11811181
11821182 # FIXME: decode as bnulrl 0
1183 # CHECK: bclrl 4, 3, 0
1183 # CHECK: bclrl 4, 3
11841184 0x4c 0x83 0x00 0x21
11851185
11861186 # FIXME: decode as bnuctrl 2
1187 # CHECK: bcctrl 4, 11, 0
1187 # CHECK: bcctrl 4, 11
11881188 0x4c 0x8b 0x04 0x21
11891189
11901190 # FIXME: decode as bnuctrl 0
1191 # CHECK: bcctrl 4, 3, 0
1191 # CHECK: bcctrl 4, 3
11921192 0x4c 0x83 0x04 0x21
11931193
11941194 # FIXME: decode as bnulr+ 2
1195 # CHECK: bclr 7, 11, 0
1195 # CHECK: bclr 7, 11
11961196 0x4c 0xeb 0x00 0x20
11971197
11981198 # FIXME: decode as bnulr+ 0
1199 # CHECK: bclr 7, 3, 0
1199 # CHECK: bclr 7, 3
12001200 0x4c 0xe3 0x00 0x20
12011201
12021202 # FIXME: decode as bnuctr+ 2
1203 # CHECK: bcctr 7, 11, 0
1203 # CHECK: bcctr 7, 11
12041204 0x4c 0xeb 0x04 0x20
12051205
12061206 # FIXME: decode as bnuctr+ 0
1207 # CHECK: bcctr 7, 3, 0
1207 # CHECK: bcctr 7, 3
12081208 0x4c 0xe3 0x04 0x20
12091209
12101210 # FIXME: decode as bnulrl+ 2
1211 # CHECK: bclrl 7, 11, 0
1211 # CHECK: bclrl 7, 11
12121212 0x4c 0xeb 0x00 0x21
12131213
12141214 # FIXME: decode as bnulrl+ 0
1215 # CHECK: bclrl 7, 3, 0
1215 # CHECK: bclrl 7, 3
12161216 0x4c 0xe3 0x00 0x21
12171217
12181218 # FIXME: decode as bnuctrl+ 2
1219 # CHECK: bcctrl 7, 11, 0
1219 # CHECK: bcctrl 7, 11
12201220 0x4c 0xeb 0x04 0x21
12211221
12221222 # FIXME: decode as bnuctrl+ 0
1223 # CHECK: bcctrl 7, 3, 0
1223 # CHECK: bcctrl 7, 3
12241224 0x4c 0xe3 0x04 0x21
12251225
12261226 # FIXME: decode as bnulr- 2
1227 # CHECK: bclr 6, 11, 0
1227 # CHECK: bclr 6, 11
12281228 0x4c 0xcb 0x00 0x20
12291229
12301230 # FIXME: decode as bnulr- 0
1231 # CHECK: bclr 6, 3, 0
1231 # CHECK: bclr 6, 3
12321232 0x4c 0xc3 0x00 0x20
12331233
12341234 # FIXME: decode as bnuctr- 2
1235 # CHECK: bcctr 6, 11, 0
1235 # CHECK: bcctr 6, 11
12361236 0x4c 0xcb 0x04 0x20
12371237
12381238 # FIXME: decode as bnuctr- 0
1239 # CHECK: bcctr 6, 3, 0
1239 # CHECK: bcctr 6, 3
12401240 0x4c 0xc3 0x04 0x20
12411241
12421242 # FIXME: decode as bnulrl- 2
1243 # CHECK: bclrl 6, 11, 0
1243 # CHECK: bclrl 6, 11
12441244 0x4c 0xcb 0x00 0x21
12451245
12461246 # FIXME: decode as bnulrl- 0
1247 # CHECK: bclrl 6, 3, 0
1247 # CHECK: bclrl 6, 3
12481248 0x4c 0xc3 0x00 0x21
12491249
12501250 # FIXME: decode as bnuctrl- 2
1251 # CHECK: bcctrl 6, 11, 0
1251 # CHECK: bcctrl 6, 11
12521252 0x4c 0xcb 0x04 0x21
12531253
12541254 # FIXME: decode as bnuctrl- 0
1255 # CHECK: bcctrl 6, 3, 0
1255 # CHECK: bcctrl 6, 3
12561256 0x4c 0xc3 0x04 0x21
12571257
12581258 # FIXME: decode as bunlr 2
1259 # CHECK: bclr 12, 11, 0
1259 # CHECK: bclr 12, 11
12601260 0x4d 0x8b 0x00 0x20
12611261
12621262 # FIXME: decode as bunlr 0
1263 # CHECK: bclr 12, 3, 0
1263 # CHECK: bclr 12, 3
12641264 0x4d 0x83 0x00 0x20
12651265
12661266 # FIXME: decode as bunctr 2
1267 # CHECK: bcctr 12, 11, 0
1267 # CHECK: bcctr 12, 11
12681268 0x4d 0x8b 0x04 0x20
12691269
12701270 # FIXME: decode as bunctr 0
1271 # CHECK: bcctr 12, 3, 0
1271 # CHECK: bcctr 12, 3
12721272 0x4d 0x83 0x04 0x20
12731273
12741274 # FIXME: decode as bunlrl 2
1275 # CHECK: bclrl 12, 11, 0
1275 # CHECK: bclrl 12, 11
12761276 0x4d 0x8b 0x00 0x21
12771277
12781278 # FIXME: decode as bunlrl 0
1279 # CHECK: bclrl 12, 3, 0
1279 # CHECK: bclrl 12, 3
12801280 0x4d 0x83 0x00 0x21
12811281
12821282 # FIXME: decode as bunctrl 2
1283 # CHECK: bcctrl 12, 11, 0
1283 # CHECK: bcctrl 12, 11
12841284 0x4d 0x8b 0x04 0x21
12851285
12861286 # FIXME: decode as bunctrl 0
1287 # CHECK: bcctrl 12, 3, 0
1287 # CHECK: bcctrl 12, 3
12881288 0x4d 0x83 0x04 0x21
12891289
12901290 # FIXME: decode as bunlr+ 2
1291 # CHECK: bclr 15, 11, 0
1291 # CHECK: bclr 15, 11
12921292 0x4d 0xeb 0x00 0x20
12931293
12941294 # FIXME: decode as bunlr+ 0
1295 # CHECK: bclr 15, 3, 0
1295 # CHECK: bclr 15, 3
12961296 0x4d 0xe3 0x00 0x20
12971297
12981298 # FIXME: decode as bunctr+ 2
1299 # CHECK: bcctr 15, 11, 0
1299 # CHECK: bcctr 15, 11
13001300 0x4d 0xeb 0x04 0x20
13011301
13021302 # FIXME: decode as bunctr+ 0
1303 # CHECK: bcctr 15, 3, 0
1303 # CHECK: bcctr 15, 3
13041304 0x4d 0xe3 0x04 0x20
13051305
13061306 # FIXME: decode as bunlrl+ 2
1307 # CHECK: bclrl 15, 11, 0
1307 # CHECK: bclrl 15, 11
13081308 0x4d 0xeb 0x00 0x21
13091309
13101310 # FIXME: decode as bunlrl+ 0
1311 # CHECK: bclrl 15, 3, 0
1311 # CHECK: bclrl 15, 3
13121312 0x4d 0xe3 0x00 0x21
13131313
13141314 # FIXME: decode as bunctrl+ 2
1315 # CHECK: bcctrl 15, 11, 0
1315 # CHECK: bcctrl 15, 11
13161316 0x4d 0xeb 0x04 0x21
13171317
13181318 # FIXME: decode as bunctrl+ 0
1319 # CHECK: bcctrl 15, 3, 0
1319 # CHECK: bcctrl 15, 3
13201320 0x4d 0xe3 0x04 0x21
13211321
13221322 # FIXME: decode as bunlr- 2
1323 # CHECK: bclr 14, 11, 0
1323 # CHECK: bclr 14, 11
13241324 0x4d 0xcb 0x00 0x20
13251325
13261326 # FIXME: decode as bunlr- 0
1327 # CHECK: bclr 14, 3, 0
1327 # CHECK: bclr 14, 3
13281328 0x4d 0xc3 0x00 0x20
13291329
13301330 # FIXME: decode as bunctr- 2
1331 # CHECK: bcctr 14, 11, 0
1331 # CHECK: bcctr 14, 11
13321332 0x4d 0xcb 0x04 0x20
13331333
13341334 # FIXME: decode as bunctr- 0
1335 # CHECK: bcctr 14, 3, 0
1335 # CHECK: bcctr 14, 3
13361336 0x4d 0xc3 0x04 0x20
13371337
13381338 # FIXME: decode as bunlrl- 2
1339 # CHECK: bclrl 14, 11, 0
1339 # CHECK: bclrl 14, 11
13401340 0x4d 0xcb 0x00 0x21
13411341
13421342 # FIXME: decode as bunlrl- 0
1343 # CHECK: bclrl 14, 3, 0
1343 # CHECK: bclrl 14, 3
13441344 0x4d 0xc3 0x00 0x21
13451345
13461346 # FIXME: decode as bunctrl- 2
1347 # CHECK: bcctrl 14, 11, 0
1347 # CHECK: bcctrl 14, 11
13481348 0x4d 0xcb 0x04 0x21
13491349
13501350 # FIXME: decode as bunctrl- 0
1351 # CHECK: bcctrl 14, 3, 0
1351 # CHECK: bcctrl 14, 3
13521352 0x4d 0xc3 0x04 0x21
13531353
13541354 # FIXME: decode as bnulr 2
1355 # CHECK: bclr 4, 11, 0
1355 # CHECK: bclr 4, 11
13561356 0x4c 0x8b 0x00 0x20
13571357
13581358 # FIXME: decode as bnulr 0
1359 # CHECK: bclr 4, 3, 0
1359 # CHECK: bclr 4, 3
13601360 0x4c 0x83 0x00 0x20
13611361
13621362 # FIXME: decode as bnuctr 2
1363 # CHECK: bcctr 4, 11, 0
1363 # CHECK: bcctr 4, 11
13641364 0x4c 0x8b 0x04 0x20
13651365
13661366 # FIXME: decode as bnuctr 0
1367 # CHECK: bcctr 4, 3, 0
1367 # CHECK: bcctr 4, 3
13681368 0x4c 0x83 0x04 0x20
13691369
13701370 # FIXME: decode as bnulrl 2
1371 # CHECK: bclrl 4, 11, 0
1371 # CHECK: bclrl 4, 11
13721372 0x4c 0x8b 0x00 0x21
13731373
13741374 # FIXME: decode as bnulrl 0
1375 # CHECK: bclrl 4, 3, 0
1375 # CHECK: bclrl 4, 3
13761376 0x4c 0x83 0x00 0x21
13771377
13781378 # FIXME: decode as bnuctrl 2
1379 # CHECK: bcctrl 4, 11, 0
1379 # CHECK: bcctrl 4, 11
13801380 0x4c 0x8b 0x04 0x21
13811381
13821382 # FIXME: decode as bnuctrl 0
1383 # CHECK: bcctrl 4, 3, 0
1383 # CHECK: bcctrl 4, 3
13841384 0x4c 0x83 0x04 0x21
13851385
13861386 # FIXME: decode as bnulr+ 2
1387 # CHECK: bclr 7, 11, 0
1387 # CHECK: bclr 7, 11
13881388 0x4c 0xeb 0x00 0x20
13891389
13901390 # FIXME: decode as bnulr+ 0
1391 # CHECK: bclr 7, 3, 0
1391 # CHECK: bclr 7, 3
13921392 0x4c 0xe3 0x00 0x20
13931393
13941394 # FIXME: decode as bnuctr+ 2
1395 # CHECK: bcctr 7, 11, 0
1395 # CHECK: bcctr 7, 11
13961396 0x4c 0xeb 0x04 0x20
13971397
13981398 # FIXME: decode as bnuctr+ 0
1399 # CHECK: bcctr 7, 3, 0
1399 # CHECK: bcctr 7, 3
14001400 0x4c 0xe3 0x04 0x20
14011401
14021402 # FIXME: decode as bnulrl+ 2
1403 # CHECK: bclrl 7, 11, 0
1403 # CHECK: bclrl 7, 11
14041404 0x4c 0xeb 0x00 0x21
14051405
14061406 # FIXME: decode as bnulrl+ 0
1407 # CHECK: bclrl 7, 3, 0
1407 # CHECK: bclrl 7, 3
14081408 0x4c 0xe3 0x00 0x21
14091409
14101410 # FIXME: decode as bnuctrl+ 2
1411 # CHECK: bcctrl 7, 11, 0
1411 # CHECK: bcctrl 7, 11
14121412 0x4c 0xeb 0x04 0x21
14131413
14141414 # FIXME: decode as bnuctrl+ 0
1415 # CHECK: bcctrl 7, 3, 0
1415 # CHECK: bcctrl 7, 3
14161416 0x4c 0xe3 0x04 0x21
14171417
14181418 # FIXME: decode as bnulr- 2
1419 # CHECK: bclr 6, 11, 0
1419 # CHECK: bclr 6, 11
14201420 0x4c 0xcb 0x00 0x20
14211421
14221422 # FIXME: decode as bnulr- 0
1423 # CHECK: bclr 6, 3, 0
1423 # CHECK: bclr 6, 3
14241424 0x4c 0xc3 0x00 0x20
14251425
14261426 # FIXME: decode as bnuctr- 2
1427 # CHECK: bcctr 6, 11, 0
1427 # CHECK: bcctr 6, 11
14281428 0x4c 0xcb 0x04 0x20
14291429
14301430 # FIXME: decode as bnuctr- 0
1431 # CHECK: bcctr 6, 3, 0
1431 # CHECK: bcctr 6, 3
14321432 0x4c 0xc3 0x04 0x20
14331433
14341434 # FIXME: decode as bnulrl- 2
1435 # CHECK: bclrl 6, 11, 0
1435 # CHECK: bclrl 6, 11
14361436 0x4c 0xcb 0x00 0x21
14371437
14381438 # FIXME: decode as bnulrl- 0
1439 # CHECK: bclrl 6, 3, 0
1439 # CHECK: bclrl 6, 3
14401440 0x4c 0xc3 0x00 0x21
14411441
14421442 # FIXME: decode as bnuctrl- 2
1443 # CHECK: bcctrl 6, 11, 0
1443 # CHECK: bcctrl 6, 11
14441444 0x4c 0xcb 0x04 0x21
14451445
14461446 # FIXME: decode as bnuctrl- 0
1447 # CHECK: bcctrl 6, 3, 0
1447 # CHECK: bcctrl 6, 3
14481448 0x4c 0xc3 0x04 0x21
14491449
14501450 # FIXME: test bc 12, 2, target
18001800 # FIXME: test bnula- 2, target
18011801 # FIXME: test bnula- 0, target
18021802
1803 # CHECK: creqv 2, 2, 2
1803 # CHECK: crset 2
18041804 0x4c 0x42 0x12 0x42
18051805
1806 # CHECK: crxor 2, 2, 2
1806 # CHECK: crclr 2
18071807 0x4c 0x42 0x11 0x82
18081808
1809 # CHECK: cror 2, 3, 3
1809 # CHECK: crmove 2, 3
18101810 0x4c 0x43 0x1b 0x82
18111811
1812 # CHECK: crnor 2, 3, 3
1812 # CHECK: crnot 2, 3
18131813 0x4c 0x43 0x18 0x42
18141814
18151815 # CHECK: addi 2, 3, -128
18391839 # CHECK: cmpdi 2, 3, 128
18401840 0x2d 0x23 0x00 0x80
18411841
1842 # CHECK: cmpdi 0, 3, 128
1842 # CHECK: cmpdi 3, 128
18431843 0x2c 0x23 0x00 0x80
18441844
18451845 # CHECK: cmpd 2, 3, 4
18461846 0x7d 0x23 0x20 0x00
18471847
1848 # CHECK: cmpd 0, 3, 4
1848 # CHECK: cmpd 3, 4
18491849 0x7c 0x23 0x20 0x00
18501850
18511851 # CHECK: cmpldi 2, 3, 128
18521852 0x29 0x23 0x00 0x80
18531853
1854 # CHECK: cmpldi 0, 3, 128
1854 # CHECK: cmpldi 3, 128
18551855 0x28 0x23 0x00 0x80
18561856
18571857 # CHECK: cmpld 2, 3, 4
18581858 0x7d 0x23 0x20 0x40
18591859
1860 # CHECK: cmpld 0, 3, 4
1860 # CHECK: cmpld 3, 4
18611861 0x7c 0x23 0x20 0x40
18621862
18631863 # CHECK: cmpwi 2, 3, 128
18641864 0x2d 0x03 0x00 0x80
18651865
1866 # CHECK: cmpwi 0, 3, 128
1866 # CHECK: cmpwi 3, 128
18671867 0x2c 0x03 0x00 0x80
18681868
18691869 # CHECK: cmpw 2, 3, 4
18701870 0x7d 0x03 0x20 0x00
18711871
1872 # CHECK: cmpw 0, 3, 4
1872 # CHECK: cmpw 3, 4
18731873 0x7c 0x03 0x20 0x00
18741874
18751875 # CHECK: cmplwi 2, 3, 128
18761876 0x29 0x03 0x00 0x80
18771877
1878 # CHECK: cmplwi 0, 3, 128
1878 # CHECK: cmplwi 3, 128
18791879 0x28 0x03 0x00 0x80
18801880
18811881 # CHECK: cmplw 2, 3, 4
18821882 0x7d 0x03 0x20 0x40
18831883
1884 # CHECK: cmplw 0, 3, 4
1884 # CHECK: cmplw 3, 4
18851885 0x7c 0x03 0x20 0x40
18861886
1887 # CHECK: twi 16, 3, 4
1887 # CHECK: twlti 3, 4
18881888 0x0e 0x03 0x00 0x04
18891889
1890 # CHECK: tw 16, 3, 4
1890 # CHECK: twlt 3, 4
18911891 0x7e 0x03 0x20 0x08
18921892
1893 # CHECK: tdi 16, 3, 4
1893 # CHECK: tdlti 3, 4
18941894 0x0a 0x03 0x00 0x04
18951895
1896 # CHECK: td 16, 3, 4
1896 # CHECK: tdlt 3, 4
18971897 0x7e 0x03 0x20 0x88
18981898
18991899 # CHECK: twi 20, 3, 4
19081908 # CHECK: td 20, 3, 4
19091909 0x7e 0x83 0x20 0x88
19101910
1911 # CHECK: twi 4, 3, 4
1911 # CHECK: tweqi 3, 4
19121912 0x0c 0x83 0x00 0x04
19131913
1914 # CHECK: tw 4, 3, 4
1914 # CHECK: tweq 3, 4
19151915 0x7c 0x83 0x20 0x08
19161916
1917 # CHECK: tdi 4, 3, 4
1917 # CHECK: tdeqi 3, 4
19181918 0x08 0x83 0x00 0x04
19191919
1920 # CHECK: td 4, 3, 4
1920 # CHECK: tdeq 3, 4
19211921 0x7c 0x83 0x20 0x88
19221922
19231923 # CHECK: twi 12, 3, 4
19321932 # CHECK: td 12, 3, 4
19331933 0x7d 0x83 0x20 0x88
19341934
1935 # CHECK: twi 8, 3, 4
1935 # CHECK: twgti 3, 4
19361936 0x0d 0x03 0x00 0x04
19371937
1938 # CHECK: tw 8, 3, 4
1938 # CHECK: twgt 3, 4
19391939 0x7d 0x03 0x20 0x08
19401940
1941 # CHECK: tdi 8, 3, 4
1941 # CHECK: tdgti 3, 4
19421942 0x09 0x03 0x00 0x04
19431943
1944 # CHECK: td 8, 3, 4
1944 # CHECK: tdgt 3, 4
19451945 0x7d 0x03 0x20 0x88
19461946
19471947 # CHECK: twi 12, 3, 4
19561956 # CHECK: td 12, 3, 4
19571957 0x7d 0x83 0x20 0x88
19581958
1959 # CHECK: twi 24, 3, 4
1959 # CHECK: twnei 3, 4
19601960 0x0f 0x03 0x00 0x04
19611961
1962 # CHECK: tw 24, 3, 4
1962 # CHECK: twne 3, 4
19631963 0x7f 0x03 0x20 0x08
19641964
1965 # CHECK: tdi 24, 3, 4
1965 # CHECK: tdnei 3, 4
19661966 0x0b 0x03 0x00 0x04
19671967
1968 # CHECK: td 24, 3, 4
1968 # CHECK: tdne 3, 4
19691969 0x7f 0x03 0x20 0x88
19701970
19711971 # CHECK: twi 20, 3, 4
19801980 # CHECK: td 20, 3, 4
19811981 0x7e 0x83 0x20 0x88
19821982
1983 # CHECK: twi 2, 3, 4
1983 # CHECK: twllti 3, 4
19841984 0x0c 0x43 0x00 0x04
19851985
1986 # CHECK: tw 2, 3, 4
1986 # CHECK: twllt 3, 4
19871987 0x7c 0x43 0x20 0x08
19881988
1989 # CHECK: tdi 2, 3, 4
1989 # CHECK: tdllti 3, 4
19901990 0x08 0x43 0x00 0x04
19911991
1992 # CHECK: td 2, 3, 4
1992 # CHECK: tdllt 3, 4
19931993 0x7c 0x43 0x20 0x88
19941994
19951995 # CHECK: twi 6, 3, 4
20162016 # CHECK: td 5, 3, 4
20172017 0x7c 0xa3 0x20 0x88
20182018
2019 # CHECK: twi 1, 3, 4
2019 # CHECK: twlgti 3, 4
20202020 0x0c 0x23 0x00 0x04
20212021
2022 # CHECK: tw 1, 3, 4
2022 # CHECK: twlgt 3, 4
20232023 0x7c 0x23 0x20 0x08
20242024
2025 # CHECK: tdi 1, 3, 4
2025 # CHECK: tdlgti 3, 4
20262026 0x08 0x23 0x00 0x04
20272027
2028 # CHECK: td 1, 3, 4
2028 # CHECK: tdlgt 3, 4
20292029 0x7c 0x23 0x20 0x88
20302030
20312031 # CHECK: twi 5, 3, 4
20522052 # CHECK: td 6, 3, 4
20532053 0x7c 0xc3 0x20 0x88
20542054
2055 # CHECK: twi 31, 3, 4
2055 # CHECK: twui 3, 4
20562056 0x0f 0xe3 0x00 0x04
20572057
2058 # CHECK: tw 31, 3, 4
2058 # CHECK: twu 3, 4
20592059 0x7f 0xe3 0x20 0x08
20602060
2061 # CHECK: tdi 31, 3, 4
2061 # CHECK: tdui 3, 4
20622062 0x0b 0xe3 0x00 0x04
20632063
2064 # CHECK: td 31, 3, 4
2064 # CHECK: tdu 3, 4
20652065 0x7f 0xe3 0x20 0x88
20662066
2067