1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-14 23:04:57 +00:00

Sorting synthesis by clobber when printing. Added an handling of synths with equal cycles & clobber but different ASM.

This commit is contained in:
Jesper Gravgaard 2018-01-21 09:39:37 +01:00
parent 267d006752
commit 2d8cf433f6
8 changed files with 12373 additions and 13221 deletions

View File

@ -3,7 +3,7 @@ package dk.camelot64.kickc.fragment;
import dk.camelot64.kickc.asm.AsmClobber;
/** The clobber profile for a fragment template. Only distinguishes the 3 registers A/X/Y and not the flags. */
public class AsmFragmentClobber {
public class AsmFragmentClobber implements Comparable<AsmFragmentClobber> {
private boolean clobberA;
private boolean clobberX;
@ -73,8 +73,24 @@ public class AsmFragmentClobber {
return true;
}
/**
* Determines if this clobber is a true subset of the passed clobber.
* If this clobber clobbers the fewer registers than the passed clobber it is a subset.
* If the two clobbers are equal they are not true subsets of each other.
* @param other The other clobber to examine
* @return true if this clobber clobbers the same or fewer registers than the passed clobber.
*/
public boolean isTrueSubset(AsmFragmentClobber other) {
return isSubset(other) && !equals(other);
}
@Override
public String toString() {
return (clobberA?"A ":"")+(clobberX?"X ":"")+(clobberY?"Y ":" ");
}
@Override
public int compareTo(AsmFragmentClobber o) {
return toString().compareTo(o.toString());
}
}

View File

@ -126,6 +126,9 @@ class AsmFragmentTemplateSynthesisRule {
}
newFragment.append(asmPostfix);
}
if(newFragment.length()>0 && newFragment.charAt(newFragment.length()-1)=='\n') {
newFragment = new StringBuilder(newFragment.substring(0, newFragment.length()-1));
}
return new AsmFragmentTemplate(signature, newFragment.toString(), this, subTemplate);
}

View File

@ -48,7 +48,7 @@ public class AsmFragmentTemplateSynthesizer {
}
public static AsmFragmentInstance getFragmentInstance(AsmFragmentInstanceSpec instanceSpec, CompileLog log) {
public static AsmFragmentInstance getFragmentInstance(AsmFragmentInstanceSpec instanceSpec, CompileLog log) {
String signature = instanceSpec.getSignature();
AsmFragmentTemplate fragmentTemplate = SYNTHESIZER.getFragmentTemplate(signature, log);
// Return the resulting fragment instance
@ -62,6 +62,7 @@ public class AsmFragmentTemplateSynthesizer {
/**
* Get the best fragment templates for a signature
*
* @param signature The signature
* @param log The log
* @return The best templates (with different clobber profiles) for the signature
@ -90,9 +91,9 @@ public class AsmFragmentTemplateSynthesizer {
double minScore = Double.MAX_VALUE;
for(AsmFragmentTemplate candidateTemplate : candidates) {
double score = candidateTemplate.getCycles();
if(candidateTemplate.getClobber().isClobberA()) score+=0.5;
if(candidateTemplate.getClobber().isClobberY()) score+=1.0;
if(candidateTemplate.getClobber().isClobberX()) score+=1.5;
if(candidateTemplate.getClobber().isClobberA()) score += 0.5;
if(candidateTemplate.getClobber().isClobberY()) score += 1.0;
if(candidateTemplate.getClobber().isClobberX()) score += 1.5;
if(score < minScore) {
minScore = score;
bestTemplate = candidateTemplate;
@ -221,21 +222,41 @@ public class AsmFragmentTemplateSynthesizer {
for(AsmFragmentClobber bestClobber : bestClobbers) {
AsmFragmentTemplate bestTemplate = bestTemplates.get(bestClobber);
double bestCycles = bestTemplate.getCycles();
if(bestClobber.isSubset(candidateClobber) && bestCycles <= candidateCycles) {
if(bestClobber.isTrueSubset(candidateClobber) && bestCycles <= candidateCycles) {
// A better template already found - don't update
return false;
}
if(bestClobber.isSubset(candidateClobber) && bestCycles < candidateCycles) {
// A better template already found - don't update
return false;
}
if(bestClobber.equals(candidateClobber) && bestCycles == candidateCycles && bestTemplate.getBody().compareTo(candidate.getBody()) <= 0) {
// A better template already found - don't update
return false;
}
}
// The candidate is better than some of the current best!
// Remove any current templates that are worse
for(AsmFragmentClobber bestClobber : bestClobbers) {
AsmFragmentTemplate bestTemplate = bestTemplates.get(bestClobber);
double bestCycles = bestTemplate.getCycles();
if(candidateClobber.isSubset(bestClobber) && candidateCycles <= bestCycles) {
if(candidateClobber.isTrueSubset(bestClobber) && candidateCycles <= bestCycles) {
// The candidate is better - remove the current template
bestTemplates.remove(bestClobber);
}
if(candidateClobber.isSubset(bestClobber) && candidateCycles < bestCycles) {
// The candidate is better - remove the current template
bestTemplates.remove(bestClobber);
}
if(candidateClobber.equals(bestClobber) && candidateCycles == bestCycles && candidate.getBody().compareTo(bestTemplate.getBody()) < 0) {
// The candidate is better - remove the current template
bestTemplates.remove(bestClobber);
}
}
// Update the current best
bestTemplates.put(candidateClobber, candidate);
@ -325,7 +346,8 @@ public class AsmFragmentTemplateSynthesizer {
}
}
/** Get the entire synthesis graph. Called by the usage statistics.
/**
* Get the entire synthesis graph. Called by the usage statistics.
*
* @return The entire synthesis graph
*/
@ -431,7 +453,7 @@ public class AsmFragmentTemplateSynthesizer {
Collection<AsmFragmentTemplate> subTemplates = subSynthesis.getBestTemplates();
for(AsmFragmentTemplate subTemplate : subTemplates) {
AsmFragmentTemplate synthesized = rule.synthesize(synthesis.getSignature(), subTemplate);
if(synthesized!=null) {
if(synthesized != null) {
if(log.isVerboseFragmentLog()) {
log.append("Fragment synthesis " + synthesis.getSignature() + " - Successfully synthesized from " + subSignature);
}
@ -477,11 +499,15 @@ public class AsmFragmentTemplateSynthesizer {
if(fragmentUrl == null) return null;
InputStream fragmentStream = fragmentUrl.openStream();
String body;
if(fragmentStream.available()==0) {
if(fragmentStream.available() == 0) {
body = "";
} else {
} else {
CharStream fragmentCharStream = CharStreams.fromStream(fragmentStream);
body = fragmentCharStream.toString();
if(body.length() > 0 && body.charAt(body.length() - 1) == '\n') {
body = body.substring(0, body.length() - 1);
}
}
return new AsmFragmentTemplate(signature, body);
} catch(IOException e) {

View File

@ -10,9 +10,7 @@ import org.junit.Test;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.*;
import static junit.framework.TestCase.fail;
@ -46,11 +44,13 @@ public class TestFragments {
int cnt = 0;
for(String signature : signatures) {
if(++cnt % 1000 == 0) System.out.println(""+cnt+"/"+signatures.size());
Collection<AsmFragmentTemplate> templates =
AsmFragmentTemplateSynthesizer.getFragmentTemplates(signature, log);
List<AsmFragmentTemplate> templates =
new ArrayList<>(AsmFragmentTemplateSynthesizer.getFragmentTemplates(signature, log));
Collections.sort(templates, Comparator.comparing(AsmFragmentTemplate::getClobber));
if(templates.size() == 0) {
log.append("CANNOT SYNTHESIZE " + signature);
}
for(AsmFragmentTemplate template : templates) {
log.append((template.isFile() ? "*" : "") + template.getName() + " - clobber:" + template.getClobber().toString() + " cycles:" + template.getCycles());
log.append(" " + template.getBody().replace("\n", "\n "));

View File

@ -140,26 +140,26 @@ vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobbe
CANNOT SYNTHESIZE vbuaa=_neg_pbuc1_derefidx_vbuyy
CANNOT SYNTHESIZE vbuaa=_pos_pbuc1_derefidx_vbuyy
CANNOT SYNTHESIZE vbuaa=_not_pbuc1_derefidx_vbuz1
vbuaa=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:11.5
ldy {z1}
lda {c1},y
sec
sbc #1
vbuaa=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:11.5
ldx {z1}
lda {c1},x
sec
sbc #1
vbuaa=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:11.5
vbuaa=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:11.5
ldy {z1}
lda {c1},y
clc
adc #1
sec
sbc #1
vbuaa=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:11.5
ldx {z1}
lda {c1},x
clc
adc #1
vbuaa=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:11.5
ldy {z1}
lda {c1},y
clc
adc #1
CANNOT SYNTHESIZE vbuaa=_neg_pbuc1_derefidx_vbuz1
CANNOT SYNTHESIZE vbuaa=_pos_pbuc1_derefidx_vbuz1
CANNOT SYNTHESIZE vbuaa=_not_pbuc1_derefidx_vbuc1
@ -498,6 +498,10 @@ vbuyy=_inc_vbuc1 < vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber:A Y cycles:6.0
CANNOT SYNTHESIZE vbuyy=_neg_vbuc1
CANNOT SYNTHESIZE vbuyy=_pos_vbuc1
CANNOT SYNTHESIZE vbuz1=_not_vbuaa
vbuz1=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:7.0
sec
sbc #1
sta {z1}
vbuz1=_dec_vbuaa < vbuz1=_dec_vbuxx < vbuxx=_dec_vbuxx - clobber:X cycles:7.0
tax
dex
@ -506,9 +510,9 @@ vbuz1=_dec_vbuaa < vbuz1=_dec_vbuyy < vbuyy=_dec_vbuyy - clobber:Y cycles:7.0
tay
dey
sty {z1}
vbuz1=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:7.0
sec
sbc #1
vbuz1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:7.0
clc
adc #1
sta {z1}
vbuz1=_inc_vbuaa < vbuz1=_inc_vbuxx < vbuxx=_inc_vbuxx - clobber:X cycles:7.0
tax
@ -518,10 +522,6 @@ vbuz1=_inc_vbuaa < vbuz1=_inc_vbuyy < vbuyy=_inc_vbuyy - clobber:Y cycles:7.0
tay
iny
sty {z1}
vbuz1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:7.0
clc
adc #1
sta {z1}
CANNOT SYNTHESIZE vbuz1=_neg_vbuaa
CANNOT SYNTHESIZE vbuz1=_pos_vbuaa
CANNOT SYNTHESIZE vbuz1=_not_vbuxx
@ -536,7 +536,6 @@ vbuz1=_dec_vbuxx < vbuxx=_dec_vbuxx - clobber:X cycles:5.0
*vbuz1=_inc_vbuxx - clobber: cycles:8.0
stx {z1}
inc {z1}
vbuz1=_inc_vbuxx < vbuxx=_inc_vbuxx - clobber:X cycles:5.0
inx
stx {z1}
@ -554,7 +553,6 @@ vbuz1=_dec_vbuyy < vbuyy=_dec_vbuyy - clobber:Y cycles:5.0
*vbuz1=_inc_vbuyy - clobber: cycles:8.0
sty {z1}
inc {z1}
vbuz1=_inc_vbuyy < vbuyy=_inc_vbuyy - clobber:Y cycles:5.0
iny
sty {z1}
@ -563,10 +561,8 @@ CANNOT SYNTHESIZE vbuz1=_pos_vbuyy
CANNOT SYNTHESIZE vbuz1=_not_vbuz1
*vbuz1=_dec_vbuz1 - clobber: cycles:5.0
dec {z1}
*vbuz1=_inc_vbuz1 - clobber: cycles:5.0
inc {z1}
CANNOT SYNTHESIZE vbuz1=_neg_vbuz1
CANNOT SYNTHESIZE vbuz1=_pos_vbuz1
CANNOT SYNTHESIZE vbuz1=_not_vbuz2
@ -575,27 +571,27 @@ vbuz1=_dec_vbuz2 < vbuaa=_dec_vbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - c
sec
sbc #1
sta {z1}
vbuz1=_dec_vbuz2 < vbuyy=_dec_vbuz1 < vbuyy=_dec_vbuyy - clobber:Y cycles:8.0
ldy {z2}
dey
sty {z1}
vbuz1=_dec_vbuz2 < vbuxx=_dec_vbuz1 < vbuxx=_dec_vbuxx - clobber:X cycles:8.0
ldx {z2}
dex
stx {z1}
vbuz1=_dec_vbuz2 < vbuyy=_dec_vbuz1 < vbuyy=_dec_vbuyy - clobber:Y cycles:8.0
ldy {z2}
dey
sty {z1}
vbuz1=_inc_vbuz2 < vbuaa=_inc_vbuz1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:10.0
lda {z2}
clc
adc #1
sta {z1}
vbuz1=_inc_vbuz2 < vbuyy=_inc_vbuz1 < vbuyy=_inc_vbuyy - clobber:Y cycles:8.0
ldy {z2}
iny
sty {z1}
vbuz1=_inc_vbuz2 < vbuxx=_inc_vbuz1 < vbuxx=_inc_vbuxx - clobber:X cycles:8.0
ldx {z2}
inx
stx {z1}
vbuz1=_inc_vbuz2 < vbuyy=_inc_vbuz1 < vbuyy=_inc_vbuyy - clobber:Y cycles:8.0
ldy {z2}
iny
sty {z1}
CANNOT SYNTHESIZE vbuz1=_neg_vbuz2
CANNOT SYNTHESIZE vbuz1=_pos_vbuz2
CANNOT SYNTHESIZE vbuz1=_not__deref_pbuz1
@ -634,27 +630,27 @@ vbuz1=_dec__deref_pbuc1 < vbuaa=_dec__deref_pbuc1 < vbuaa=_dec_vbuaa < vbuaa=vbu
sec
sbc #1
sta {z1}
vbuz1=_dec__deref_pbuc1 < vbuyy=_dec__deref_pbuc1 < vbuyy=_dec_vbuyy - clobber:Y cycles:9.0
ldy {c1}
dey
sty {z1}
vbuz1=_dec__deref_pbuc1 < vbuxx=_dec__deref_pbuc1 < vbuxx=_dec_vbuxx - clobber:X cycles:9.0
ldx {c1}
dex
stx {z1}
vbuz1=_dec__deref_pbuc1 < vbuyy=_dec__deref_pbuc1 < vbuyy=_dec_vbuyy - clobber:Y cycles:9.0
ldy {c1}
dey
sty {z1}
vbuz1=_inc__deref_pbuc1 < vbuaa=_inc__deref_pbuc1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:11.0
lda {c1}
clc
adc #1
sta {z1}
vbuz1=_inc__deref_pbuc1 < vbuyy=_inc__deref_pbuc1 < vbuyy=_inc_vbuyy - clobber:Y cycles:9.0
ldy {c1}
iny
sty {z1}
vbuz1=_inc__deref_pbuc1 < vbuxx=_inc__deref_pbuc1 < vbuxx=_inc_vbuxx - clobber:X cycles:9.0
ldx {c1}
inx
stx {z1}
vbuz1=_inc__deref_pbuc1 < vbuyy=_inc__deref_pbuc1 < vbuyy=_inc_vbuyy - clobber:Y cycles:9.0
ldy {c1}
iny
sty {z1}
CANNOT SYNTHESIZE vbuz1=_neg__deref_pbuc1
CANNOT SYNTHESIZE vbuz1=_pos__deref_pbuc1
CANNOT SYNTHESIZE vbuz1=_not_pbuz1_derefidx_vbuaa
@ -776,23 +772,17 @@ vbuz1=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_v
CANNOT SYNTHESIZE vbuz1=_neg_pbuc1_derefidx_vbuyy
CANNOT SYNTHESIZE vbuz1=_pos_pbuc1_derefidx_vbuyy
CANNOT SYNTHESIZE vbuz1=_not_pbuc1_derefidx_vbuz1
vbuz1=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.5
ldy {z1}
lda {c1},y
sec
sbc #1
sta {z1}
vbuz1=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.5
ldx {z1}
lda {c1},x
sec
sbc #1
sta {z1}
vbuz1=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.5
vbuz1=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.5
ldy {z1}
lda {c1},y
clc
adc #1
sec
sbc #1
sta {z1}
vbuz1=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:14.5
ldx {z1}
@ -800,26 +790,26 @@ vbuz1=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_p
clc
adc #1
sta {z1}
vbuz1=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.5
ldy {z1}
lda {c1},y
clc
adc #1
sta {z1}
CANNOT SYNTHESIZE vbuz1=_neg_pbuc1_derefidx_vbuz1
CANNOT SYNTHESIZE vbuz1=_pos_pbuc1_derefidx_vbuz1
CANNOT SYNTHESIZE vbuz1=_not_pbuc1_derefidx_vbuz2
vbuz1=_dec_pbuc1_derefidx_vbuz2 < vbuaa=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.5
ldy {z2}
lda {c1},y
sec
sbc #1
sta {z1}
vbuz1=_dec_pbuc1_derefidx_vbuz2 < vbuaa=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.5
ldx {z2}
lda {c1},x
sec
sbc #1
sta {z1}
vbuz1=_inc_pbuc1_derefidx_vbuz2 < vbuaa=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.5
vbuz1=_dec_pbuc1_derefidx_vbuz2 < vbuaa=_dec_pbuc1_derefidx_vbuz1 < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.5
ldy {z2}
lda {c1},y
clc
adc #1
sec
sbc #1
sta {z1}
vbuz1=_inc_pbuc1_derefidx_vbuz2 < vbuaa=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:14.5
ldx {z2}
@ -827,6 +817,12 @@ vbuz1=_inc_pbuc1_derefidx_vbuz2 < vbuaa=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_p
clc
adc #1
sta {z1}
vbuz1=_inc_pbuc1_derefidx_vbuz2 < vbuaa=_inc_pbuc1_derefidx_vbuz1 < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.5
ldy {z2}
lda {c1},y
clc
adc #1
sta {z1}
CANNOT SYNTHESIZE vbuz1=_neg_pbuc1_derefidx_vbuz2
CANNOT SYNTHESIZE vbuz1=_pos_pbuc1_derefidx_vbuz2
CANNOT SYNTHESIZE vbuz1=_not_pbuc1_derefidx_vbuc1
@ -1213,10 +1209,8 @@ CANNOT SYNTHESIZE _deref_pbuc1=_pos__deref_pbuz1
CANNOT SYNTHESIZE _deref_pbuc1=_not__deref_pbuc1
*_deref_pbuc1=_dec__deref_pbuc1 - clobber: cycles:6.0
dec {c1}
*_deref_pbuc1=_inc__deref_pbuc1 - clobber: cycles:6.0
inc {c1}
CANNOT SYNTHESIZE _deref_pbuc1=_neg__deref_pbuc1
CANNOT SYNTHESIZE _deref_pbuc1=_pos__deref_pbuc1
CANNOT SYNTHESIZE _deref_pbuc1=_not__deref_pbuc2
@ -1321,23 +1315,17 @@ _deref_pbuc1=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa
CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc1_derefidx_vbuyy
CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc1_derefidx_vbuyy
CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc1_derefidx_vbuz1
_deref_pbuc1=_dec_pbuc1_derefidx_vbuz1 < _deref_pbuc1=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.5
ldy {z1}
lda {c1},y
sec
sbc #1
sta {c1}
_deref_pbuc1=_dec_pbuc1_derefidx_vbuz1 < _deref_pbuc1=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:15.5
ldx {z1}
lda {c1},x
sec
sbc #1
sta {c1}
_deref_pbuc1=_inc_pbuc1_derefidx_vbuz1 < _deref_pbuc1=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:15.5
_deref_pbuc1=_dec_pbuc1_derefidx_vbuz1 < _deref_pbuc1=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.5
ldy {z1}
lda {c1},y
clc
adc #1
sec
sbc #1
sta {c1}
_deref_pbuc1=_inc_pbuc1_derefidx_vbuz1 < _deref_pbuc1=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:15.5
ldx {z1}
@ -1345,6 +1333,12 @@ _deref_pbuc1=_inc_pbuc1_derefidx_vbuz1 < _deref_pbuc1=_inc_pbuc1_derefidx_vbuxx
clc
adc #1
sta {c1}
_deref_pbuc1=_inc_pbuc1_derefidx_vbuz1 < _deref_pbuc1=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:15.5
ldy {z1}
lda {c1},y
clc
adc #1
sta {c1}
CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc1_derefidx_vbuz1
CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc1_derefidx_vbuz1
CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc1_derefidx_vbuc1
@ -1411,23 +1405,17 @@ _deref_pbuc1=_inc_pbuc2_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa
CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc2_derefidx_vbuyy
CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc2_derefidx_vbuyy
CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc2_derefidx_vbuz1
_deref_pbuc1=_dec_pbuc2_derefidx_vbuz1 < _deref_pbuc1=_dec_pbuc2_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.5
ldy {z1}
lda {c2},y
sec
sbc #1
sta {c1}
_deref_pbuc1=_dec_pbuc2_derefidx_vbuz1 < _deref_pbuc1=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:15.5
ldx {z1}
lda {c2},x
sec
sbc #1
sta {c1}
_deref_pbuc1=_inc_pbuc2_derefidx_vbuz1 < _deref_pbuc1=_inc_pbuc2_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:15.5
_deref_pbuc1=_dec_pbuc2_derefidx_vbuz1 < _deref_pbuc1=_dec_pbuc2_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.5
ldy {z1}
lda {c2},y
clc
adc #1
sec
sbc #1
sta {c1}
_deref_pbuc1=_inc_pbuc2_derefidx_vbuz1 < _deref_pbuc1=_inc_pbuc2_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:15.5
ldx {z1}
@ -1435,16 +1423,15 @@ _deref_pbuc1=_inc_pbuc2_derefidx_vbuz1 < _deref_pbuc1=_inc_pbuc2_derefidx_vbuxx
clc
adc #1
sta {c1}
_deref_pbuc1=_inc_pbuc2_derefidx_vbuz1 < _deref_pbuc1=_inc_pbuc2_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:15.5
ldy {z1}
lda {c2},y
clc
adc #1
sta {c1}
CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc2_derefidx_vbuz1
CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc2_derefidx_vbuz1
CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc2_derefidx_vbuc1
_deref_pbuc1=_dec_pbuc2_derefidx_vbuc1 < vbuaa=_dec_pbuc2_derefidx_vbuc1 < vbuaa=pbuc2_derefidx_vbuc1_minus_1 < vbuaa=pbuc1_derefidx_vbuaa_minus_1 < vbuaa=pbuc1_derefidx_vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.5
lda #{c1}
tay
lda {c2},y
sec
sbc #1
sta {c1}
_deref_pbuc1=_dec_pbuc2_derefidx_vbuc1 < vbuaa=_dec_pbuc2_derefidx_vbuc1 < vbuaa=pbuc2_derefidx_vbuc1_minus_1 < vbuaa=pbuc1_derefidx_vbuaa_minus_1 < vbuaa=pbuc1_derefidx_vbuxx_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.5
lda #{c1}
tax
@ -1452,6 +1439,13 @@ _deref_pbuc1=_dec_pbuc2_derefidx_vbuc1 < vbuaa=_dec_pbuc2_derefidx_vbuc1 < vbuaa
sec
sbc #1
sta {c1}
_deref_pbuc1=_dec_pbuc2_derefidx_vbuc1 < vbuaa=_dec_pbuc2_derefidx_vbuc1 < vbuaa=pbuc2_derefidx_vbuc1_minus_1 < vbuaa=pbuc1_derefidx_vbuaa_minus_1 < vbuaa=pbuc1_derefidx_vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.5
lda #{c1}
tay
lda {c2},y
sec
sbc #1
sta {c1}
_deref_pbuc1=_inc_pbuc2_derefidx_vbuc1 < vbuaa=_inc_pbuc2_derefidx_vbuc1 < vbuaa=pbuc2_derefidx_vbuc1_plus_1 < vbuaa=1_plus_pbuc2_derefidx_vbuc1 < vbuaa=1_plus_pbuc1_derefidx_vbuaa < vbuaa=1_plus_pbuc1_derefidx_vbuxx < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:16.5
lda #{c1}
tax
@ -2942,20 +2936,20 @@ pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuxx=_inc_pbuc2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc2_derefidx_vbuyy
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc2_derefidx_vbuyy
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc2_derefidx_vbuz1
pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X Y cycles:18.5
tax
ldy {z1}
lda {c2},y
pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X Y cycles:18.5
ldx {z1}
tay
lda {c2},x
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X Y cycles:18.5
tax
ldy {z1}
lda {c2},y
sta {c1},y
pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X Y cycles:18.5
ldx {z1}
tay
lda {c2},x
clc
adc #1
sta {c1},x
sta {c1},y
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc2_derefidx_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc2_derefidx_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc2_derefidx_vbuc1
@ -3500,39 +3494,45 @@ pbuc1_derefidx_vbuyy=_inc_vbuc2 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa=
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_vbuc2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_vbuc2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuaa
pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:12.0
ldx {z1}
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:12.0
ldy {z1}
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:12.0
pbuc1_derefidx_vbuz1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:12.0
clc
adc #1
ldx {z1}
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:12.0
ldy {z1}
clc
adc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:12.0
ldx {z1}
clc
adc #1
sta {c1},x
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuaa
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuaa
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuxx
pbuc1_derefidx_vbuz1=_dec_vbuxx < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0
txa
ldx {z1}
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuz1=_dec_vbuxx < pbuc1_derefidx_vbuyy=_dec_vbuxx < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.0
ldy {z1}
txa
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0
pbuc1_derefidx_vbuz1=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:14.0
txa
sec
sbc #1
clc
adc #1
ldx {z1}
sta {c1},x
pbuc1_derefidx_vbuz1=_inc_vbuxx < pbuc1_derefidx_vbuyy=_inc_vbuxx < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.0
@ -3541,12 +3541,6 @@ pbuc1_derefidx_vbuz1=_inc_vbuxx < pbuc1_derefidx_vbuyy=_inc_vbuxx < pbuc1_derefi
clc
adc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:14.0
txa
clc
adc #1
ldx {z1}
sta {c1},x
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuxx
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuxx
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuyy
@ -3577,23 +3571,17 @@ pbuc1_derefidx_vbuz1=_inc_vbuyy < pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1_derefi
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuyy
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuyy
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuz1
pbuc1_derefidx_vbuz1=_dec_vbuz1 < pbuc1_derefidx_vbuyy=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.0
ldy {z1}
tya
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_dec_vbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuxx < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0
ldx {z1}
txa
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuz1=_inc_vbuz1 < pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.0
pbuc1_derefidx_vbuz1=_dec_vbuz1 < pbuc1_derefidx_vbuyy=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.0
ldy {z1}
tya
clc
adc #1
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc_vbuz1 < pbuc1_derefidx_vbuxx=_inc_vbuxx < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:14.0
ldx {z1}
@ -3601,33 +3589,39 @@ pbuc1_derefidx_vbuz1=_inc_vbuz1 < pbuc1_derefidx_vbuxx=_inc_vbuxx < pbuc1_derefi
clc
adc #1
sta {c1},x
pbuc1_derefidx_vbuz1=_inc_vbuz1 < pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.0
ldy {z1}
tya
clc
adc #1
sta {c1},y
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuz2
pbuc1_derefidx_vbuz1=_dec_vbuz2 < pbuc1_derefidx_vbuyy=_dec_vbuz1 < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.0
ldy {z1}
pbuc1_derefidx_vbuz1=_dec_vbuz2 < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:15.0
lda {z2}
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_dec_vbuz2 < pbuc1_derefidx_vbuxx=_dec_vbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:15.0
ldx {z1}
lda {z2}
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuz1=_inc_vbuz2 < pbuc1_derefidx_vbuyy=_inc_vbuz1 < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:15.0
ldy {z1}
pbuc1_derefidx_vbuz1=_dec_vbuz2 < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.0
lda {z2}
ldy {z1}
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc_vbuz2 < pbuc1_derefidx_vbuz1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:15.0
lda {z2}
clc
adc #1
ldx {z1}
sta {c1},x
pbuc1_derefidx_vbuz1=_inc_vbuz2 < pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:15.0
lda {z2}
ldy {z1}
clc
adc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc_vbuz2 < pbuc1_derefidx_vbuxx=_inc_vbuz1 < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:15.0
ldx {z1}
lda {z2}
clc
adc #1
sta {c1},x
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuz2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuz2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not__deref_pbuz1
@ -3665,44 +3659,50 @@ pbuc1_derefidx_vbuz1=_inc__deref_pbuz2 < pbuc1_derefidx_vbuxx=_inc__deref_pbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg__deref_pbuz2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos__deref_pbuz2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not__deref_pbuc1
pbuc1_derefidx_vbuz1=_dec__deref_pbuc1 < pbuc1_derefidx_vbuyy=_dec__deref_pbuc1 < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.0
ldy {z1}
pbuc1_derefidx_vbuz1=_dec__deref_pbuc1 < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.0
lda {c1}
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_dec__deref_pbuc1 < pbuc1_derefidx_vbuxx=_dec__deref_pbuc1 < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.0
ldx {z1}
lda {c1}
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuz1=_inc__deref_pbuc1 < pbuc1_derefidx_vbuyy=_inc__deref_pbuc1 < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:16.0
ldy {z1}
pbuc1_derefidx_vbuz1=_dec__deref_pbuc1 < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.0
lda {c1}
ldy {z1}
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc__deref_pbuc1 < pbuc1_derefidx_vbuz1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:16.0
lda {c1}
clc
adc #1
ldx {z1}
sta {c1},x
pbuc1_derefidx_vbuz1=_inc__deref_pbuc1 < pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:16.0
lda {c1}
ldy {z1}
clc
adc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc__deref_pbuc1 < pbuc1_derefidx_vbuxx=_inc__deref_pbuc1 < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:16.0
ldx {z1}
lda {c1}
clc
adc #1
sta {c1},x
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg__deref_pbuc1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos__deref_pbuc1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not__deref_pbuc2
pbuc1_derefidx_vbuz1=_dec__deref_pbuc2 < vbuaa=_dec__deref_pbuc1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.0
lda {c2}
sec
sbc #1
ldx {z1}
sta {c1},x
pbuc1_derefidx_vbuz1=_dec__deref_pbuc2 < pbuc1_derefidx_vbuyy=_dec__deref_pbuc2 < vbuaa=_dec__deref_pbuc1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.0
ldy {z1}
lda {c2}
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_dec__deref_pbuc2 < pbuc1_derefidx_vbuxx=_dec__deref_pbuc2 < vbuaa=_dec__deref_pbuc1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.0
ldx {z1}
pbuc1_derefidx_vbuz1=_inc__deref_pbuc2 < vbuaa=_inc__deref_pbuc1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:16.0
lda {c2}
sec
sbc #1
clc
adc #1
ldx {z1}
sta {c1},x
pbuc1_derefidx_vbuz1=_inc__deref_pbuc2 < pbuc1_derefidx_vbuyy=_inc__deref_pbuc2 < vbuaa=_inc__deref_pbuc1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:16.0
ldy {z1}
@ -3710,12 +3710,6 @@ pbuc1_derefidx_vbuz1=_inc__deref_pbuc2 < pbuc1_derefidx_vbuyy=_inc__deref_pbuc2
clc
adc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc__deref_pbuc2 < pbuc1_derefidx_vbuxx=_inc__deref_pbuc2 < vbuaa=_inc__deref_pbuc1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:16.0
ldx {z1}
lda {c2}
clc
adc #1
sta {c1},x
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg__deref_pbuc2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos__deref_pbuc2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuz1_derefidx_vbuaa
@ -3885,12 +3879,12 @@ CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuc2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc1_derefidx_vbuc2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc1_derefidx_vbuc2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc2_derefidx_vbuaa
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuaa < pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:18.5
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuaa < pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:18.5
tax
lda {c2},x
ldx {z1}
sec
sbc #1
ldx {z1}
sta {c1},x
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuaa < pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:18.5
tay
@ -3916,23 +3910,17 @@ pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuaa < pbuc1_derefidx_vbuz1=_inc_pbuc2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc2_derefidx_vbuaa
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc2_derefidx_vbuaa
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc2_derefidx_vbuxx
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.5
ldy {z1}
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.5
lda {c2},x
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.5
lda {c2},x
sec
sbc #1
ldx {z1}
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:16.5
ldy {z1}
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.5
lda {c2},x
clc
adc #1
ldy {z1}
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:16.5
lda {c2},x
@ -3940,12 +3928,18 @@ pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx
adc #1
ldx {z1}
sta {c1},x
pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:16.5
lda {c2},x
ldy {z1}
clc
adc #1
sta {c1},y
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc2_derefidx_vbuxx
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc2_derefidx_vbuxx
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc2_derefidx_vbuyy
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.5
ldx {z1}
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.5
lda {c2},y
ldx {z1}
sec
sbc #1
sta {c1},x
@ -3955,11 +3949,11 @@ pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuz1=_dec_vbuaa
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:16.5
ldx {z1}
pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:16.5
lda {c2},y
clc
adc #1
ldx {z1}
sta {c1},x
pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:16.5
lda {c2},y
@ -3970,23 +3964,17 @@ pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuz1=_inc_vbuaa
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc2_derefidx_vbuyy
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc2_derefidx_vbuyy
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc2_derefidx_vbuz1
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.5
ldy {z1}
lda {c2},y
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:16.5
ldx {z1}
lda {c2},x
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:16.5
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.5
ldy {z1}
lda {c2},y
clc
adc #1
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:16.5
ldx {z1}
@ -3994,9 +3982,22 @@ pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_inc_pbuc2
clc
adc #1
sta {c1},x
pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:16.5
ldy {z1}
lda {c2},y
clc
adc #1
sta {c1},y
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc2_derefidx_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc2_derefidx_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc2_derefidx_vbuz2
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuz2 < pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:19.5
ldx {z2}
lda {c2},x
ldx {z1}
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuz2 < pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:19.5
ldy {z2}
lda {c2},y
@ -4004,11 +4005,11 @@ pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuz2 < pbuc1_derefidx_vbuz1=_dec_pbuc2
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuz2 < pbuc1_derefidx_vbuz1=_dec_pbuc2_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:19.5
pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuz2 < pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:19.5
ldx {z2}
lda {c2},x
sec
sbc #1
clc
adc #1
ldx {z1}
sta {c1},x
pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuz2 < pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:19.5
@ -4018,13 +4019,6 @@ pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuz2 < pbuc1_derefidx_vbuz1=_inc_pbuc2
clc
adc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuz2 < pbuc1_derefidx_vbuz1=_inc_pbuc2_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:19.5
ldx {z2}
lda {c2},x
clc
adc #1
ldx {z1}
sta {c1},x
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_pbuc2_derefidx_vbuz2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_pbuc2_derefidx_vbuz2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_pbuc2_derefidx_vbuc1
@ -4072,17 +4066,23 @@ pbuc1_derefidx_vbuz1=_inc_vbuc1 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa=
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuc1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuc1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuc2
pbuc1_derefidx_vbuz1=_dec_vbuc2 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0
lda #{c2}
sec
sbc #1
ldx {z1}
sta {c1},x
pbuc1_derefidx_vbuz1=_dec_vbuc2 < pbuc1_derefidx_vbuyy=_dec_vbuc2 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.0
ldy {z1}
lda #{c2}
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_dec_vbuc2 < pbuc1_derefidx_vbuxx=_dec_vbuc2 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0
ldx {z1}
pbuc1_derefidx_vbuz1=_inc_vbuc2 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa=1_plus_vbuc1 < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:14.0
lda #{c2}
sec
sbc #1
clc
adc #1
ldx {z1}
sta {c1},x
pbuc1_derefidx_vbuz1=_inc_vbuc2 < pbuc1_derefidx_vbuyy=_inc_vbuc2 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa=1_plus_vbuc1 < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.0
ldy {z1}
@ -4090,12 +4090,6 @@ pbuc1_derefidx_vbuz1=_inc_vbuc2 < pbuc1_derefidx_vbuyy=_inc_vbuc2 < vbuaa=_inc_v
clc
adc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc_vbuc2 < pbuc1_derefidx_vbuxx=_inc_vbuc2 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa=1_plus_vbuc1 < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:14.0
ldx {z1}
lda #{c2}
clc
adc #1
sta {c1},x
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuc2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuc2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuc1=_not_vbuaa