; 10-bit carry-lookahead adder, in-place
title "10-bit carry-lookahead adder"
arch ac

var A0
var B0
var C0
var A1
var B1
var C1
var A2
var B2
var T0
var C2
var A3
var B3
var C3
var A4
var B4
var T1
var C4
var A5
var B5
var T2
var C5
var A6
var B6
var T3
var C6
var A7
var B7
var C7
var A8
var B8
var T4
var C8
var A9
var B9
var C9
temp T101

1:	CCNOT A0  B0  C0
	CCNOT A1  B1  C1
	CCNOT A2  B2  C2
	CCNOT A3  B3  C3
	CCNOT A4  B4  C4
	CCNOT A5  B5  C5
	CCNOT A6  B6  C6
	CCNOT A7  B7  C7
	CCNOT A8  B8  C8
	CCNOT A9  B9  C9
2:	CNOT  A0  B0
	CNOT  A1  B1
	CNOT  A2  B2
	CNOT  A3  B3
	CNOT  A4  B4
	CNOT  A5  B5
	CNOT  A6  B6
	CNOT  A7  B7
	CNOT  A8  B8
	CNOT  A9  B9
3:	CCNOT B2  B3  T0
	CCNOT B4  B5  T1
	CCNOT B6  B7  T3
	CCNOT B8  B9  T4
4:	CCNOT T1  T3  T2
	CCNOT C0  B1  C1
	CCNOT C2  B3  C3
	CCNOT C4  B5  C5
	CCNOT C6  B7  C7
	CCNOT C8  B9  C9
5:	CCNOT C1  T0  C3
	CCNOT C5  T3  C7
6:	CCNOT C3  C5  C7
7:	CCNOT C3  T1  C5
	CCNOT C7  T4  C9
8:	CCNOT C1  B2  C2
	CCNOT C3  B4  C4
	CCNOT C5  B6  C6
	CCNOT C7  B8  C8
	CCNOT T1  T3  T2
9:	CCNOT B2  B3  C2
	CCNOT B4  B5  C4
	CCNOT B6  B7  C6
	CCNOT B8  B9  C8
10:	CNOT  C0  B1
	CNOT  C1  B2
	CNOT  C2  B3
	CNOT  C3  B4
	CNOT  C4  B5
	CNOT  C5  B6
	CNOT  C6  B7
	CNOT  C7  B8
	CNOT  C8  B9
11:	NOT   B0
	NOT   B1
	NOT   B2
	NOT   B3
	NOT   B4
	NOT   B5
	NOT   B6
	NOT   B7
	NOT   B8
12:	CNOT  A1  B1
	CNOT  A2  B2
	CNOT  A3  B3
	CNOT  A4  B4
	CNOT  A5  B5
	CNOT  A6  B6
	CNOT  A7  B7
	CNOT  A8  B8
13:	CCNOT B2  B3  C2
	CCNOT B4  B5  C4
	CCNOT B6  B7  C6
14:	CCNOT C1  B2  C2
	CCNOT C3  B4  C4
	CCNOT C5  B6  C6
	CCNOT C7  B8  C8
	CCNOT T1  T3  T2
15:	CCNOT C3  T1  C5
16:	CCNOT C3  C5  C7
17:	CCNOT C1  T0  C3
	CCNOT C5  T3  C7
18:	CCNOT T1  T3  T2
	CCNOT C0  B1  C1
	CCNOT C2  B3  C3
	CCNOT C4  B5  C5
	CCNOT C6  B7  C7
19:	CCNOT B2  B3  T0
	CCNOT B4  B5  T1
	CCNOT B6  B7  T3
20:	CNOT  A1  B1
	CNOT  A2  B2
	CNOT  A3  B3
	CNOT  A4  B4
	CNOT  A5  B5
	CNOT  A6  B6
	CNOT  A7  B7
	CNOT  A8  B8
21:	CCNOT A0  B0  C0
	CCNOT A1  B1  C1
	CCNOT A2  B2  C2
	CCNOT A3  B3  C3
	CCNOT A4  B4  C4
	CCNOT A5  B5  C5
	CCNOT A6  B6  C6
	CCNOT A7  B7  C7
	CCNOT A8  B8  C8
22:	NOT   B0
	NOT   B1
	NOT   B2
	NOT   B3
	NOT   B4
	NOT   B5
	NOT   B6
	NOT   B7
	NOT   B8
