From a87a97c669372905e175d547c7722887e77cb027 Mon Sep 17 00:00:00 2001
From: jespergravgaard <jesper@balmangravgaard.dk>
Date: Sat, 24 Feb 2018 13:02:15 +0100
Subject: [PATCH] Moved sin to separate method.

---
 .../kickc/fragment/asm/vduz1=vduz1_rol_3.asm  |    4 +-
 .../fragment/asm/vduz1=vduz1_rol_vbuyy.asm    |   11 +
 .../dk/camelot64/kickc/test/kc/sinusgen.kc    |   56 +-
 .../dk/camelot64/kickc/test/ref/sinusgen.asm  |  398 +-
 .../dk/camelot64/kickc/test/ref/sinusgen.cfg  |  298 +-
 .../dk/camelot64/kickc/test/ref/sinusgen.log  | 5835 +++++++++--------
 .../dk/camelot64/kickc/test/ref/sinusgen.sym  |  183 +-
 .../kickc/test/ref/test-lohiconst.cfg         |   18 +
 .../kickc/test/ref/test-lohiconst.sym         |   10 +
 9 files changed, 3440 insertions(+), 3373 deletions(-)
 create mode 100644 src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_vbuyy.asm
 create mode 100644 src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.cfg
 create mode 100644 src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.sym

diff --git a/src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_3.asm b/src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_3.asm
index ea2c9964e..c8fb61a40 100644
--- a/src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_3.asm
+++ b/src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_3.asm
@@ -1,8 +1,8 @@
-ldx #3
+ldy #3
 !:
 asl {z1}
 rol {z1}+1
 rol {z1}+2
 rol {z1}+3
-dex
+dey
 bne !-
diff --git a/src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_vbuyy.asm b/src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_vbuyy.asm
new file mode 100644
index 000000000..af2518dc1
--- /dev/null
+++ b/src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_vbuyy.asm
@@ -0,0 +1,11 @@
+cpy #0
+cpy #0
+beq !e+
+!:
+asl {z1}
+rol {z1}+1
+rol {z1}+2
+rol {z1}+3
+dey
+bne !-
+!e:
\ No newline at end of file
diff --git a/src/test/java/dk/camelot64/kickc/test/kc/sinusgen.kc b/src/test/java/dk/camelot64/kickc/test/kc/sinusgen.kc
index 11a2d50ef..97cf18465 100644
--- a/src/test/java/dk/camelot64/kickc/test/kc/sinusgen.kc
+++ b/src/test/java/dk/camelot64/kickc/test/kc/sinusgen.kc
@@ -46,36 +46,42 @@ void sin16s_gen(signed word* sintab, word wavelength) {
     // Iterate over the table
     dword x = 0; // u[4.28]
     for( word i=0; i<wavelength; i++) {
-        // Move x1 into the range 0-PI/2 using sinus mirror symmetries
-        dword xp = x; // u[4.28]
-        byte isUpper = 0;
-        if(xp >= PI_u4f28 ) {
-            xp = xp - PI_u4f28;
-            isUpper = 1;
-        }
-        if(xp >= PI_HALF_u4f28 ) {
-            xp = PI_u4f28 - xp;
-        }
-        // s[4.12] sinx = x - x^3/6 + x5/128;
-        word x1 = >xp<<3; // u[1.15]
-        word x2 = mul_u16_sel(x1, x1, 0); // u[2.14] x^2
-        word x3 = mul_u16_sel(x2, x1, 1); // u[2.14] x^3
-        word x3_6 = mul_u16_sel(x3, $10000/6, 1);  // u[1.15] x^3/6;
-        word usinx = x1 - x3_6; // u[1.15] x - x^3/6
-        word x4 = mul_u16_sel(x3, x1, 0); // u[3.13] x^4
-        word x5 = mul_u16_sel(x4, x1, 0); // u[4.12] x^5
-        word x5_128 = mul_u16_sel(x5, $10000/128, 3); // u[1.15] x^5/128;
-        usinx = usinx + x5_128; // u[1.15] (always an initial zero)
-        signed word sinx = (signed word)usinx; // s[0.15]
-        if(isUpper!=0) {
-            sinx = -(signed word)usinx; // s[0.15];
-         }
-        *sintab = sinx;
+        *sintab = sin16s(x);
         sintab = sintab + 2;
         x = x + step;
     }
 }
 
+// Calculate signed word sinus sin(x)
+// x: unsigned dword input u[4.28] in the interval $00000000 - PI2_u4f28
+// result: signed word sin(x) s[0.15] - using the full range  -$7fff - $7fff
+signed word sin16s(dword x) {
+    // Move x1 into the range 0-PI/2 using sinus mirror symmetries
+    byte isUpper = 0;
+    if(x >= PI_u4f28 ) {
+        x = x - PI_u4f28;
+        isUpper = 1;
+    }
+    if(x >= PI_HALF_u4f28 ) {
+        x = PI_u4f28 - x;
+    }
+    // s[4.12] sinx = x - x^3/6 + x5/128;
+    word x1 = >x<<3; // u[1.15]
+    word x2 = mul_u16_sel(x1, x1, 0); // u[2.14] x^2
+    word x3 = mul_u16_sel(x2, x1, 1); // u[2.14] x^3
+    word x3_6 = mul_u16_sel(x3, $10000/6, 1);  // u[1.15] x^3/6;
+    word usinx = x1 - x3_6; // u[1.15] x - x^3/6
+    word x4 = mul_u16_sel(x3, x1, 0); // u[3.13] x^4
+    word x5 = mul_u16_sel(x4, x1, 0); // u[4.12] x^5
+    word x5_128 = mul_u16_sel(x5, $10000/128, 3); // u[1.15] x^5/128;
+    usinx = usinx + x5_128; // u[1.15] (always an initial zero)
+    signed word sinx = (signed word)usinx; // s[0.15]
+    if(isUpper!=0) {
+        sinx = -(signed word)usinx; // s[0.15];
+     }
+     return sinx;
+}
+
 // Generate (small) signed word sinus table - in the limited -$fff - $fff range
 // sintab - the table to generate into
 // wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.asm b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.asm
index f800672fa..c042e1a12 100644
--- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.asm
+++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.asm
@@ -160,21 +160,11 @@ print_cls: {
     rts
 }
 sin16s_gen: {
-    .label _7 = $e
-    .label step = $1a
-    .label xp = $e
-    .label x1 = $1e
-    .label x2 = 8
-    .label x3 = 8
-    .label x3_6 = 6
-    .label usinx = 6
-    .label x4 = 8
-    .label x5 = 8
-    .label x5_128 = $12
+    .label _1 = 6
+    .label step = $1b
     .label sintab = 2
     .label x = $a
     .label i = 4
-    .label sinx = 6
     jsr div32u16u
     lda #<0
     sta i
@@ -189,178 +179,20 @@ sin16s_gen: {
     sta x+2
     sta x+3
   b1:
-    lda x+3
-    cmp #>PI_u4f28>>$10
-    bcs !b17+
-    jmp b17
-  !b17:
-    bne !+
-    lda x+2
-    cmp #<PI_u4f28>>$10
-    bcs !b17+
-    jmp b17
-  !b17:
-    bne !+
-    lda x+1
-    cmp #>PI_u4f28
-    bcs !b17+
-    jmp b17
-  !b17:
-    bne !+
     lda x
-    cmp #<PI_u4f28
-    bcs !b17+
-    jmp b17
-  !b17:
-  !:
-    lda x
-    sec
-    sbc #<PI_u4f28
-    sta xp
+    sta sin16s.x
     lda x+1
-    sbc #>PI_u4f28
-    sta xp+1
+    sta sin16s.x+1
     lda x+2
-    sbc #<PI_u4f28>>$10
-    sta xp+2
+    sta sin16s.x+2
     lda x+3
-    sbc #>PI_u4f28>>$10
-    sta xp+3
-    ldy #1
-  b2:
-    lda xp+3
-    cmp #>PI_HALF_u4f28>>$10
-    bcc b3
-    bne !+
-    lda xp+2
-    cmp #<PI_HALF_u4f28>>$10
-    bcc b3
-    bne !+
-    lda xp+1
-    cmp #>PI_HALF_u4f28
-    bcc b3
-    bne !+
-    lda xp
-    cmp #<PI_HALF_u4f28
-    bcc b3
-  !:
-    lda #<PI_u4f28
-    sec
-    sbc xp
-    sta xp
-    lda #>PI_u4f28
-    sbc xp+1
-    sta xp+1
-    lda #<PI_u4f28>>$10
-    sbc xp+2
-    sta xp+2
-    lda #>PI_u4f28>>$10
-    sbc xp+3
-    sta xp+3
-  b3:
-    ldx #3
-  !:
-    asl _7
-    rol _7+1
-    rol _7+2
-    rol _7+3
-    dex
-    bne !-
-    lda _7+2
-    sta x1
-    lda _7+3
-    sta x1+1
-    lda x1
-    sta mul_u16_sel.v1
-    lda x1+1
-    sta mul_u16_sel.v1+1
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-    ldx #0
-    jsr mul_u16_sel
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return+1
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-    ldx #1
-    jsr mul_u16_sel
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return+1
-    ldx #1
-    lda #<$10000/6
-    sta mul_u16_sel.v2
-    lda #>$10000/6
-    sta mul_u16_sel.v2+1
-    jsr mul_u16_sel
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return_10
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return_10+1
-    lda x1
-    sec
-    sbc usinx
-    sta usinx
-    lda x1+1
-    sbc usinx+1
-    sta usinx+1
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-    ldx #0
-    jsr mul_u16_sel
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return+1
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-    ldx #0
-    jsr mul_u16_sel
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return+1
-    ldx #3
-    lda #<$10000/$80
-    sta mul_u16_sel.v2
-    lda #>$10000/$80
-    sta mul_u16_sel.v2+1
-    jsr mul_u16_sel
-    lda usinx
-    clc
-    adc x5_128
-    sta usinx
-    lda usinx+1
-    adc x5_128+1
-    sta usinx+1
-    cpy #0
-    beq b4
-    sec
-    lda sinx
-    eor #$ff
-    adc #0
-    sta sinx
-    lda sinx+1
-    eor #$ff
-    adc #0
-    sta sinx+1
-  b4:
+    sta sin16s.x+3
+    jsr sin16s
     ldy #0
-    lda sinx
+    lda _1
     sta (sintab),y
     iny
-    lda sinx+1
+    lda _1+1
     sta (sintab),y
     clc
     lda sintab
@@ -388,28 +220,196 @@ sin16s_gen: {
   !:
     lda i+1
     cmp #>main.wavelength
-    bcs !b1+
-    jmp b1
-  !b1:
+    bcc b1
     bne !+
     lda i
     cmp #<main.wavelength
-    bcs !b1+
-    jmp b1
-  !b1:
+    bcc b1
   !:
     rts
-  b17:
-    lda x
-    sta xp
-    lda x+1
-    sta xp+1
-    lda x+2
-    sta xp+2
+}
+sin16s: {
+    .label _6 = $e
+    .label x = $e
+    .label return = 6
+    .label x1 = $1f
+    .label x2 = 8
+    .label x3 = 8
+    .label x3_6 = 6
+    .label usinx = 6
+    .label x4 = 8
+    .label x5 = 8
+    .label x5_128 = $12
+    .label sinx = 6
     lda x+3
-    sta xp+3
-    ldy #0
-    jmp b2
+    cmp #>PI_u4f28>>$10
+    bcc b4
+    bne !+
+    lda x+2
+    cmp #<PI_u4f28>>$10
+    bcc b4
+    bne !+
+    lda x+1
+    cmp #>PI_u4f28
+    bcc b4
+    bne !+
+    lda x
+    cmp #<PI_u4f28
+    bcc b4
+  !:
+    lda x
+    sec
+    sbc #<PI_u4f28
+    sta x
+    lda x+1
+    sbc #>PI_u4f28
+    sta x+1
+    lda x+2
+    sbc #<PI_u4f28>>$10
+    sta x+2
+    lda x+3
+    sbc #>PI_u4f28>>$10
+    sta x+3
+    ldx #1
+    jmp b1
+  b4:
+    ldx #0
+  b1:
+    lda x+3
+    cmp #>PI_HALF_u4f28>>$10
+    bcc b2
+    bne !+
+    lda x+2
+    cmp #<PI_HALF_u4f28>>$10
+    bcc b2
+    bne !+
+    lda x+1
+    cmp #>PI_HALF_u4f28
+    bcc b2
+    bne !+
+    lda x
+    cmp #<PI_HALF_u4f28
+    bcc b2
+  !:
+    lda #<PI_u4f28
+    sec
+    sbc x
+    sta x
+    lda #>PI_u4f28
+    sbc x+1
+    sta x+1
+    lda #<PI_u4f28>>$10
+    sbc x+2
+    sta x+2
+    lda #>PI_u4f28>>$10
+    sbc x+3
+    sta x+3
+  b2:
+    ldy #3
+  !:
+    asl _6
+    rol _6+1
+    rol _6+2
+    rol _6+3
+    dey
+    bne !-
+    lda _6+2
+    sta x1
+    lda _6+3
+    sta x1+1
+    lda x1
+    sta mul_u16_sel.v1
+    lda x1+1
+    sta mul_u16_sel.v1+1
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+    lda #0
+    sta mul_u16_sel.select
+    jsr mul_u16_sel
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return+1
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+    lda #1
+    sta mul_u16_sel.select
+    jsr mul_u16_sel
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return+1
+    lda #1
+    sta mul_u16_sel.select
+    lda #<$10000/6
+    sta mul_u16_sel.v2
+    lda #>$10000/6
+    sta mul_u16_sel.v2+1
+    jsr mul_u16_sel
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return_10
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return_10+1
+    lda x1
+    sec
+    sbc usinx
+    sta usinx
+    lda x1+1
+    sbc usinx+1
+    sta usinx+1
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+    lda #0
+    sta mul_u16_sel.select
+    jsr mul_u16_sel
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return+1
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+    lda #0
+    sta mul_u16_sel.select
+    jsr mul_u16_sel
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return+1
+    lda #3
+    sta mul_u16_sel.select
+    lda #<$10000/$80
+    sta mul_u16_sel.v2
+    lda #>$10000/$80
+    sta mul_u16_sel.v2+1
+    jsr mul_u16_sel
+    lda usinx
+    clc
+    adc x5_128
+    sta usinx
+    lda usinx+1
+    adc x5_128+1
+    sta usinx+1
+    cpx #0
+    beq b3
+    sec
+    lda sinx
+    eor #$ff
+    adc #0
+    sta sinx
+    lda sinx+1
+    eor #$ff
+    adc #0
+    sta sinx+1
+  b3:
+    rts
 }
 mul_u16_sel: {
     .label _0 = $e
@@ -419,20 +419,22 @@ mul_u16_sel: {
     .label return = 8
     .label return_10 = 6
     .label return_13 = $12
+    .label select = $14
     .label return_14 = $12
     lda v1
     sta mul16u.a
     lda v1+1
     sta mul16u.a+1
     jsr mul16u
-    cpx #0
+    ldy select
+    cpy #0
     beq !e+
   !:
     asl _1
     rol _1+1
     rol _1+2
     rol _1+3
-    dex
+    dey
     bne !-
   !e:
     lda _1+2
@@ -442,8 +444,8 @@ mul_u16_sel: {
     rts
 }
 mul16u: {
-    .label mb = $16
-    .label a = $14
+    .label mb = $17
+    .label a = $15
     .label res = $e
     .label b = $12
     .label return = $e
@@ -493,7 +495,7 @@ mul16u: {
     jmp b1
 }
 div32u16u: {
-    .label return = $1a
+    .label return = $1b
     .label quotient_hi = $12
     .label quotient_lo = 8
     lda #<main.wavelength
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.cfg b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.cfg
index 26c61b907..c0be33d02 100644
--- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.cfg
+++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.cfg
@@ -1,13 +1,13 @@
 @begin: scope:[]  from
   [0] phi() [ ] ( )
-  to:@25
-@25: scope:[]  from @begin
+  to:@26
+@26: scope:[]  from @begin
   [1] phi() [ ] ( )
   [2] call main param-assignment [ ] ( )
   to:@end
-@end: scope:[]  from @25
+@end: scope:[]  from @26
   [3] phi() [ ] ( )
-main: scope:[main]  from @25
+main: scope:[main]  from @26
   [4] phi() [ ] ( main:2 [ ] )
   [5] call sin16s_gen param-assignment [ ] ( main:2 [ ] )
   to:main::@5
@@ -127,191 +127,199 @@ sin16s_gen: scope:[sin16s_gen]  from main
   [58] phi() [ ] ( main:2::sin16s_gen:5 [ ] )
   [59] call div32u16u param-assignment [ div32u16u::return#1 ] ( main:2::sin16s_gen:5 [ div32u16u::return#1 ] )
   [60] (dword) div32u16u::return#0 ← (dword) div32u16u::return#1 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] )
-  to:sin16s_gen::@9
-sin16s_gen::@9: scope:[sin16s_gen]  from sin16s_gen
+  to:sin16s_gen::@3
+sin16s_gen::@3: scope:[sin16s_gen]  from sin16s_gen
   [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#0 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] )
   to:sin16s_gen::@1
-sin16s_gen::@1: scope:[sin16s_gen]  from sin16s_gen::@4 sin16s_gen::@9
-  [62] (word) sin16s_gen::i#10 ← phi( sin16s_gen::@4/(word) sin16s_gen::i#1 sin16s_gen::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] )
-  [62] (signed word*) sin16s_gen::sintab#10 ← phi( sin16s_gen::@4/(signed word*) sin16s_gen::sintab#1 sin16s_gen::@9/(const signed word[120]) main::sintab1#0 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] )
-  [62] (dword) sin16s_gen::x#10 ← phi( sin16s_gen::@4/(dword) sin16s_gen::x#1 sin16s_gen::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] )
-  [63] if((dword) sin16s_gen::x#10<(const dword) PI_u4f28#0) goto sin16s_gen::@17 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] )
-  to:sin16s_gen::@5
-sin16s_gen::@5: scope:[sin16s_gen]  from sin16s_gen::@1
-  [64] (dword) sin16s_gen::xp#1 ← (dword) sin16s_gen::x#10 - (const dword) PI_u4f28#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] )
-  to:sin16s_gen::@2
-sin16s_gen::@2: scope:[sin16s_gen]  from sin16s_gen::@17 sin16s_gen::@5
-  [65] (byte) sin16s_gen::isUpper#10 ← phi( sin16s_gen::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@5/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] )
-  [65] (dword) sin16s_gen::xp#3 ← phi( sin16s_gen::@17/(dword~) sin16s_gen::xp#7 sin16s_gen::@5/(dword) sin16s_gen::xp#1 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] )
-  [66] if((dword) sin16s_gen::xp#3<(const dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] )
-  to:sin16s_gen::@6
-sin16s_gen::@6: scope:[sin16s_gen]  from sin16s_gen::@2
-  [67] (dword) sin16s_gen::xp#2 ← (const dword) PI_u4f28#0 - (dword) sin16s_gen::xp#3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] )
-  to:sin16s_gen::@3
-sin16s_gen::@3: scope:[sin16s_gen]  from sin16s_gen::@2 sin16s_gen::@6
-  [68] (dword) sin16s_gen::xp#5 ← phi( sin16s_gen::@2/(dword) sin16s_gen::xp#3 sin16s_gen::@6/(dword) sin16s_gen::xp#2 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#5 ] )
-  [69] (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] )
-  [70] (word) sin16s_gen::x1#0 ← > (dword~) sin16s_gen::$7 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] )
-  [71] (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] )
-  [72] (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] )
-  [73] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] )
-  [74] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] )
-  to:sin16s_gen::@10
-sin16s_gen::@10: scope:[sin16s_gen]  from sin16s_gen::@3
-  [75] (word) sin16s_gen::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] )
-  [76] (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] )
-  [77] (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] )
-  [78] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] )
-  [79] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] )
-  to:sin16s_gen::@11
-sin16s_gen::@11: scope:[sin16s_gen]  from sin16s_gen::@10
-  [80] (word) sin16s_gen::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] )
-  [81] (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] )
-  [82] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] )
-  [83] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] )
-  to:sin16s_gen::@12
-sin16s_gen::@12: scope:[sin16s_gen]  from sin16s_gen::@11
-  [84] (word) sin16s_gen::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] )
-  [85] (word) sin16s_gen::usinx#0 ← (word) sin16s_gen::x1#0 - (word) sin16s_gen::x3_6#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] )
-  [86] (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] )
-  [87] (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] )
-  [88] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  [89] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] )
-  to:sin16s_gen::@13
-sin16s_gen::@13: scope:[sin16s_gen]  from sin16s_gen::@12
-  [90] (word) sin16s_gen::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] )
-  [91] (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] )
-  [92] (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] )
-  [93] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  [94] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] )
-  to:sin16s_gen::@14
-sin16s_gen::@14: scope:[sin16s_gen]  from sin16s_gen::@13
-  [95] (word) sin16s_gen::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] )
-  [96] (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] )
-  [97] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  [98] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] )
-  to:sin16s_gen::@15
-sin16s_gen::@15: scope:[sin16s_gen]  from sin16s_gen::@14
-  [99] (word) sin16s_gen::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] )
-  [100] (word) sin16s_gen::usinx#1 ← (word) sin16s_gen::usinx#0 + (word) sin16s_gen::x5_128#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] )
-  [101] if((byte) sin16s_gen::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s_gen::@19 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] )
-  to:sin16s_gen::@7
-sin16s_gen::@7: scope:[sin16s_gen]  from sin16s_gen::@15
-  [102] (signed word) sin16s_gen::sinx#1 ← - (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] )
+sin16s_gen::@1: scope:[sin16s_gen]  from sin16s_gen::@3 sin16s_gen::@4
+  [62] (word) sin16s_gen::i#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(word) sin16s_gen::i#1 ) [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
+  [62] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[120]) main::sintab1#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#1 ) [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
+  [62] (dword) sin16s_gen::x#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(dword) sin16s_gen::x#1 ) [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
+  [63] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] )
+  [64] call sin16s param-assignment [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
+  [65] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] )
   to:sin16s_gen::@4
-sin16s_gen::@4: scope:[sin16s_gen]  from sin16s_gen::@19 sin16s_gen::@7
-  [103] (signed word) sin16s_gen::sinx#2 ← phi( sin16s_gen::@19/(signed word~) sin16s_gen::sinx#3 sin16s_gen::@7/(signed word) sin16s_gen::sinx#1 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#2 ] )
-  [104] *((signed word*) sin16s_gen::sintab#10) ← (signed word) sin16s_gen::sinx#2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] )
-  [105] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] )
-  [106] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#10 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] )
-  [107] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#10 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] )
-  [108] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] )
+sin16s_gen::@4: scope:[sin16s_gen]  from sin16s_gen::@1
+  [66] (signed word~) sin16s_gen::$1 ← (signed word) sin16s::return#0 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] )
+  [67] *((signed word*) sin16s_gen::sintab#2) ← (signed word~) sin16s_gen::$1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
+  [68] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] )
+  [69] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#2 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] )
+  [70] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#2 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] )
+  [71] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] )
   to:sin16s_gen::@return
 sin16s_gen::@return: scope:[sin16s_gen]  from sin16s_gen::@4
-  [109] return  [ ] ( main:2::sin16s_gen:5 [ ] )
+  [72] return  [ ] ( main:2::sin16s_gen:5 [ ] )
   to:@return
-sin16s_gen::@19: scope:[sin16s_gen]  from sin16s_gen::@15
-  [110] (signed word~) sin16s_gen::sinx#3 ← (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] )
-  to:sin16s_gen::@4
-sin16s_gen::@17: scope:[sin16s_gen]  from sin16s_gen::@1
-  [111] (dword~) sin16s_gen::xp#7 ← (dword) sin16s_gen::x#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] )
-  to:sin16s_gen::@2
-mul_u16_sel: scope:[mul_u16_sel]  from sin16s_gen::@10 sin16s_gen::@11 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@14 sin16s_gen::@3
-  [112] (byte) mul_u16_sel::select#6 ← phi( sin16s_gen::@10/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s_gen::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s_gen::@12/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@13/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@14/(byte/signed byte/word/signed word/dword/signed dword) 3 sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] )
-  [112] (word) mul_u16_sel::v2#6 ← phi( sin16s_gen::@10/(word) mul_u16_sel::v2#1 sin16s_gen::@11/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 sin16s_gen::@12/(word) mul_u16_sel::v2#3 sin16s_gen::@13/(word) mul_u16_sel::v2#4 sin16s_gen::@14/(dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 sin16s_gen::@3/(word) mul_u16_sel::v2#0 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] )
-  [112] (word) mul_u16_sel::v1#6 ← phi( sin16s_gen::@10/(word) mul_u16_sel::v1#1 sin16s_gen::@11/(word) mul_u16_sel::v1#2 sin16s_gen::@12/(word) mul_u16_sel::v1#3 sin16s_gen::@13/(word) mul_u16_sel::v1#4 sin16s_gen::@14/(word) mul_u16_sel::v1#5 sin16s_gen::@3/(word) mul_u16_sel::v1#0 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] )
-  [113] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] )
-  [114] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] )
-  [115] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
-  [116] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] )
+sin16s: scope:[sin16s]  from sin16s_gen::@1
+  [73] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] )
+  to:sin16s::@4
+sin16s::@4: scope:[sin16s]  from sin16s
+  [74] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#1 ] )
+  to:sin16s::@1
+sin16s::@1: scope:[sin16s]  from sin16s sin16s::@4
+  [75] (byte) sin16s::isUpper#10 ← phi( sin16s/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@4/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ sin16s::x#4 sin16s::isUpper#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#4 sin16s::isUpper#10 ] )
+  [75] (dword) sin16s::x#4 ← phi( sin16s/(dword) sin16s::x#0 sin16s::@4/(dword) sin16s::x#1 ) [ sin16s::x#4 sin16s::isUpper#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#4 sin16s::isUpper#10 ] )
+  [76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#4 sin16s::isUpper#10 ] )
+  to:sin16s::@5
+sin16s::@5: scope:[sin16s]  from sin16s::@1
+  [77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#10 sin16s::x#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x#2 ] )
+  to:sin16s::@2
+sin16s::@2: scope:[sin16s]  from sin16s::@1 sin16s::@5
+  [78] (dword) sin16s::x#6 ← phi( sin16s::@1/(dword) sin16s::x#4 sin16s::@5/(dword) sin16s::x#2 ) [ sin16s::isUpper#10 sin16s::x#6 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x#6 ] )
+  [79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#10 sin16s::$6 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::$6 ] )
+  [80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#10 sin16s::x1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 ] )
+  [81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 ] )
+  [82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] )
+  [83] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] )
+  [84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#0 ] )
+  to:sin16s::@8
+sin16s::@8: scope:[sin16s]  from sin16s::@2
+  [85] (word) sin16s::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x2#0 ] )
+  [86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 ] )
+  [87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] )
+  [88] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] )
+  [89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#1 ] )
+  to:sin16s::@9
+sin16s::@9: scope:[sin16s]  from sin16s::@8
+  [90] (word) sin16s::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 ] )
+  [91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] )
+  [92] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] )
+  [93] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] )
+  to:sin16s::@10
+sin16s::@10: scope:[sin16s]  from sin16s::@9
+  [94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] )
+  [95] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] )
+  [96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] )
+  [97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] )
+  [98] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  [99] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] )
+  to:sin16s::@11
+sin16s::@11: scope:[sin16s]  from sin16s::@10
+  [100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] )
+  [101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] )
+  [102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] )
+  [103] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  [104] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#12 ] )
+  to:sin16s::@12
+sin16s::@12: scope:[sin16s]  from sin16s::@11
+  [105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5#0 ] )
+  [106] (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] )
+  [107] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  [108] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] )
+  to:sin16s::@13
+sin16s::@13: scope:[sin16s]  from sin16s::@12
+  [109] (word) sin16s::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5_128#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5_128#0 ] )
+  [110] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#10 sin16s::usinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#1 ] )
+  [111] if((byte) sin16s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@16 [ sin16s::usinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::usinx#1 ] )
+  to:sin16s::@6
+sin16s::@6: scope:[sin16s]  from sin16s::@13
+  [112] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::sinx#1 ] )
+  to:sin16s::@3
+sin16s::@3: scope:[sin16s]  from sin16s::@16 sin16s::@6
+  [113] (signed word) sin16s::return#1 ← phi( sin16s::@16/(signed word~) sin16s::return#5 sin16s::@6/(signed word) sin16s::sinx#1 ) [ sin16s::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
+  to:sin16s::@return
+sin16s::@return: scope:[sin16s]  from sin16s::@3
+  [114] return  [ sin16s::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
+  to:@return
+sin16s::@16: scope:[sin16s]  from sin16s::@13
+  [115] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1 [ sin16s::return#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#5 ] )
+  to:sin16s::@3
+mul_u16_sel: scope:[mul_u16_sel]  from sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@2 sin16s::@8 sin16s::@9
+  [116] (byte) mul_u16_sel::select#6 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@12/(byte/signed byte/word/signed word/dword/signed dword) 3 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] )
+  [116] (word) mul_u16_sel::v2#6 ← phi( sin16s::@10/(word) mul_u16_sel::v2#3 sin16s::@11/(word) mul_u16_sel::v2#4 sin16s::@12/(dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 sin16s::@2/(word) mul_u16_sel::v2#0 sin16s::@8/(word) mul_u16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] )
+  [116] (word) mul_u16_sel::v1#6 ← phi( sin16s::@10/(word) mul_u16_sel::v1#3 sin16s::@11/(word) mul_u16_sel::v1#4 sin16s::@12/(word) mul_u16_sel::v1#5 sin16s::@2/(word) mul_u16_sel::v1#0 sin16s::@8/(word) mul_u16_sel::v1#1 sin16s::@9/(word) mul_u16_sel::v1#2 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] )
+  [117] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] )
+  [118] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] )
+  [119] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
+  [120] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] )
   to:mul_u16_sel::@2
 mul_u16_sel::@2: scope:[mul_u16_sel]  from mul_u16_sel
-  [117] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] )
-  [118] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] )
-  [119] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] )
+  [121] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] )
+  [122] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] )
+  [123] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] )
   to:mul_u16_sel::@return
 mul_u16_sel::@return: scope:[mul_u16_sel]  from mul_u16_sel::@2
-  [120] return  [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] )
+  [124] return  [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] )
   to:@return
 mul16u: scope:[mul16u]  from mul_u16_sel
-  [121] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] )
+  [125] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] )
   to:mul16u::@1
 mul16u::@1: scope:[mul16u]  from mul16u mul16u::@4
-  [122] (dword) mul16u::mb#2 ← phi( mul16u/(dword) mul16u::mb#0 mul16u::@4/(dword) mul16u::mb#1 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
-  [122] (dword) mul16u::res#2 ← phi( mul16u/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u::@4/(dword) mul16u::res#6 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
-  [122] (word) mul16u::a#2 ← phi( mul16u/(word) mul16u::a#1 mul16u::@4/(word) mul16u::a#0 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
-  [123] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
+  [126] (dword) mul16u::mb#2 ← phi( mul16u/(dword) mul16u::mb#0 mul16u::@4/(dword) mul16u::mb#1 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
+  [126] (dword) mul16u::res#2 ← phi( mul16u/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u::@4/(dword) mul16u::res#6 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
+  [126] (word) mul16u::a#2 ← phi( mul16u/(word) mul16u::a#1 mul16u::@4/(word) mul16u::a#0 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
+  [127] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
   to:mul16u::@return
 mul16u::@return: scope:[mul16u]  from mul16u::@1
-  [124] return  [ mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
+  [128] return  [ mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
   to:@return
 mul16u::@2: scope:[mul16u]  from mul16u::@1
-  [125] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] )
-  [126] if((byte~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
+  [129] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] )
+  [130] if((byte~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
   to:mul16u::@7
 mul16u::@7: scope:[mul16u]  from mul16u::@2
-  [127] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] )
+  [131] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] )
   to:mul16u::@4
 mul16u::@4: scope:[mul16u]  from mul16u::@2 mul16u::@7
-  [128] (dword) mul16u::res#6 ← phi( mul16u::@2/(dword) mul16u::res#2 mul16u::@7/(dword) mul16u::res#1 ) [ mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] )
-  [129] (word) mul16u::a#0 ← (word) mul16u::a#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] )
-  [130] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] )
+  [132] (dword) mul16u::res#6 ← phi( mul16u::@2/(dword) mul16u::res#2 mul16u::@7/(dword) mul16u::res#1 ) [ mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] )
+  [133] (word) mul16u::a#0 ← (word) mul16u::a#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] )
+  [134] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] )
   to:mul16u::@1
 div32u16u: scope:[div32u16u]  from sin16s_gen
-  [131] phi() [ ] ( main:2::sin16s_gen:5::div32u16u:59 [ ] )
-  [132] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] )
-  [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] )
+  [135] phi() [ ] ( main:2::sin16s_gen:5::div32u16u:59 [ ] )
+  [136] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] )
+  [137] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] )
   to:div32u16u::@2
 div32u16u::@2: scope:[div32u16u]  from div32u16u
-  [134] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] )
-  [135] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] )
-  [136] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] )
-  [137] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] )
+  [138] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] )
+  [139] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] )
+  [140] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] )
+  [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] )
   to:div32u16u::@3
 div32u16u::@3: scope:[div32u16u]  from div32u16u::@2
-  [138] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] )
-  [139] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
+  [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] )
+  [143] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
   to:div32u16u::@return
 div32u16u::@return: scope:[div32u16u]  from div32u16u::@3
-  [140] return  [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
+  [144] return  [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
   to:@return
 divr16u: scope:[divr16u]  from div32u16u div32u16u::@2
-  [141] (word) divr16u::divisor#6 ← phi( div32u16u/(const word) main::wavelength#0 div32u16u::@2/(const word) main::wavelength#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
-  [141] (word) divr16u::dividend#5 ← phi( div32u16u/>(const dword) PI2_u4f28#0 div32u16u::@2/<(const dword) PI2_u4f28#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
-  [141] (word) divr16u::rem#10 ← phi( div32u16u/(byte/signed byte/word/signed word/dword/signed dword) 0 div32u16u::@2/(word) divr16u::rem#4 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
+  [145] (word) divr16u::divisor#6 ← phi( div32u16u/(const word) main::wavelength#0 div32u16u::@2/(const word) main::wavelength#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
+  [145] (word) divr16u::dividend#5 ← phi( div32u16u/>(const dword) PI2_u4f28#0 div32u16u::@2/<(const dword) PI2_u4f28#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
+  [145] (word) divr16u::rem#10 ← phi( div32u16u/(byte/signed byte/word/signed word/dword/signed dword) 0 div32u16u::@2/(word) divr16u::rem#4 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
   to:divr16u::@1
 divr16u::@1: scope:[divr16u]  from divr16u divr16u::@3
-  [142] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
-  [142] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
-  [142] (word) divr16u::dividend#3 ← phi( divr16u/(word) divr16u::dividend#5 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
-  [142] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
-  [143] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
-  [144] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] )
-  [145] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] )
-  [146] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
+  [146] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
+  [146] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
+  [146] (word) divr16u::dividend#3 ← phi( divr16u/(word) divr16u::dividend#5 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
+  [146] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
+  [147] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
+  [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] )
+  [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] )
+  [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
   to:divr16u::@4
 divr16u::@4: scope:[divr16u]  from divr16u::@1
-  [147] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
+  [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
   to:divr16u::@2
 divr16u::@2: scope:[divr16u]  from divr16u::@1 divr16u::@4
-  [148] (word) divr16u::rem#6 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] )
-  [149] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] )
-  [150] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
-  [151] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
+  [152] (word) divr16u::rem#6 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] )
+  [153] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] )
+  [154] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
+  [155] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
   to:divr16u::@5
 divr16u::@5: scope:[divr16u]  from divr16u::@2
-  [152] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] )
-  [153] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] )
+  [156] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] )
+  [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] )
   to:divr16u::@3
 divr16u::@3: scope:[divr16u]  from divr16u::@2 divr16u::@5
-  [154] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] )
-  [154] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] )
-  [155] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] )
-  [156] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] )
+  [158] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] )
+  [158] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] )
+  [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] )
+  [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] )
   to:divr16u::@6
 divr16u::@6: scope:[divr16u]  from divr16u::@3
-  [157] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
+  [161] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
   to:divr16u::@return
 divr16u::@return: scope:[divr16u]  from divr16u::@6
-  [158] return  [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
+  [162] return  [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
   to:@return
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.log b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.log
index 1b246bc35..40759c722 100644
--- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.log
+++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.log
@@ -47,36 +47,42 @@ void sin16s_gen(signed word* sintab, word wavelength) {
     // Iterate over the table
     dword x = 0; // u[4.28]
     for( word i=0; i<wavelength; i++) {
-        // Move x1 into the range 0-PI/2 using sinus mirror symmetries
-        dword xp = x; // u[4.28]
-        byte isUpper = 0;
-        if(xp >= PI_u4f28 ) {
-            xp = xp - PI_u4f28;
-            isUpper = 1;
-        }
-        if(xp >= PI_HALF_u4f28 ) {
-            xp = PI_u4f28 - xp;
-        }
-        // s[4.12] sinx = x - x^3/6 + x5/128;
-        word x1 = >xp<<3; // u[1.15]
-        word x2 = mul_u16_sel(x1, x1, 0); // u[2.14] x^2
-        word x3 = mul_u16_sel(x2, x1, 1); // u[2.14] x^3
-        word x3_6 = mul_u16_sel(x3, $10000/6, 1);  // u[1.15] x^3/6;
-        word usinx = x1 - x3_6; // u[1.15] x - x^3/6
-        word x4 = mul_u16_sel(x3, x1, 0); // u[3.13] x^4
-        word x5 = mul_u16_sel(x4, x1, 0); // u[4.12] x^5
-        word x5_128 = mul_u16_sel(x5, $10000/128, 3); // u[1.15] x^5/128;
-        usinx = usinx + x5_128; // u[1.15] (always an initial zero)
-        signed word sinx = (signed word)usinx; // s[0.15]
-        if(isUpper!=0) {
-            sinx = -(signed word)usinx; // s[0.15];
-         }
-        *sintab = sinx;
+        *sintab = sin16s(x);
         sintab = sintab + 2;
         x = x + step;
     }
 }
 
+// Calculate signed word sinus sin(x)
+// x: unsigned dword input u[4.28] in the interval $00000000 - PI2_u4f28
+// result: signed word sin(x) s[0.15] - using the full range  -$7fff - $7fff
+signed word sin16s(dword x) {
+    // Move x1 into the range 0-PI/2 using sinus mirror symmetries
+    byte isUpper = 0;
+    if(x >= PI_u4f28 ) {
+        x = x - PI_u4f28;
+        isUpper = 1;
+    }
+    if(x >= PI_HALF_u4f28 ) {
+        x = PI_u4f28 - x;
+    }
+    // s[4.12] sinx = x - x^3/6 + x5/128;
+    word x1 = >x<<3; // u[1.15]
+    word x2 = mul_u16_sel(x1, x1, 0); // u[2.14] x^2
+    word x3 = mul_u16_sel(x2, x1, 1); // u[2.14] x^3
+    word x3_6 = mul_u16_sel(x3, $10000/6, 1);  // u[1.15] x^3/6;
+    word usinx = x1 - x3_6; // u[1.15] x - x^3/6
+    word x4 = mul_u16_sel(x3, x1, 0); // u[3.13] x^4
+    word x5 = mul_u16_sel(x4, x1, 0); // u[4.12] x^5
+    word x5_128 = mul_u16_sel(x5, $10000/128, 3); // u[1.15] x^5/128;
+    usinx = usinx + x5_128; // u[1.15] (always an initial zero)
+    signed word sinx = (signed word)usinx; // s[0.15]
+    if(isUpper!=0) {
+        sinx = -(signed word)usinx; // s[0.15];
+     }
+     return sinx;
+}
+
 // Generate (small) signed word sinus table - in the limited -$fff - $fff range
 // sintab - the table to generate into
 // wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
@@ -882,62 +888,69 @@ proc (void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::
   (dword) sin16s_gen::x ← (byte/signed byte/word/signed word/dword/signed dword) 0
   (word) sin16s_gen::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
 sin16s_gen::@1:
-  (dword) sin16s_gen::xp ← (dword) sin16s_gen::x
-  (byte) sin16s_gen::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
-  (boolean~) sin16s_gen::$1 ← (dword) sin16s_gen::xp >= (dword) PI_u4f28
-  (boolean~) sin16s_gen::$2 ← ! (boolean~) sin16s_gen::$1
-  if((boolean~) sin16s_gen::$2) goto sin16s_gen::@2
-  (dword~) sin16s_gen::$3 ← (dword) sin16s_gen::xp - (dword) PI_u4f28
-  (dword) sin16s_gen::xp ← (dword~) sin16s_gen::$3
-  (byte) sin16s_gen::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 1
-sin16s_gen::@2:
-  (boolean~) sin16s_gen::$4 ← (dword) sin16s_gen::xp >= (dword) PI_HALF_u4f28
-  (boolean~) sin16s_gen::$5 ← ! (boolean~) sin16s_gen::$4
-  if((boolean~) sin16s_gen::$5) goto sin16s_gen::@3
-  (dword~) sin16s_gen::$6 ← (dword) PI_u4f28 - (dword) sin16s_gen::xp
-  (dword) sin16s_gen::xp ← (dword~) sin16s_gen::$6
-sin16s_gen::@3:
-  (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp << (byte/signed byte/word/signed word/dword/signed dword) 3
-  (word~) sin16s_gen::$8 ← > (dword~) sin16s_gen::$7
-  (word) sin16s_gen::x1 ← (word~) sin16s_gen::$8
-  (word~) sin16s_gen::$9 ← call mul_u16_sel (word) sin16s_gen::x1 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 
-  (word) sin16s_gen::x2 ← (word~) sin16s_gen::$9
-  (word~) sin16s_gen::$10 ← call mul_u16_sel (word) sin16s_gen::x2 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 1 
-  (word) sin16s_gen::x3 ← (word~) sin16s_gen::$10
-  (word/signed word/dword/signed dword~) sin16s_gen::$11 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6
-  (word~) sin16s_gen::$12 ← call mul_u16_sel (word) sin16s_gen::x3 (word/signed word/dword/signed dword~) sin16s_gen::$11 (byte/signed byte/word/signed word/dword/signed dword) 1 
-  (word) sin16s_gen::x3_6 ← (word~) sin16s_gen::$12
-  (word~) sin16s_gen::$13 ← (word) sin16s_gen::x1 - (word) sin16s_gen::x3_6
-  (word) sin16s_gen::usinx ← (word~) sin16s_gen::$13
-  (word~) sin16s_gen::$14 ← call mul_u16_sel (word) sin16s_gen::x3 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 
-  (word) sin16s_gen::x4 ← (word~) sin16s_gen::$14
-  (word~) sin16s_gen::$15 ← call mul_u16_sel (word) sin16s_gen::x4 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 
-  (word) sin16s_gen::x5 ← (word~) sin16s_gen::$15
-  (word/signed word/dword/signed dword~) sin16s_gen::$16 ← (dword/signed dword) 65536 / (byte/word/signed word/dword/signed dword) 128
-  (word~) sin16s_gen::$17 ← call mul_u16_sel (word) sin16s_gen::x5 (word/signed word/dword/signed dword~) sin16s_gen::$16 (byte/signed byte/word/signed word/dword/signed dword) 3 
-  (word) sin16s_gen::x5_128 ← (word~) sin16s_gen::$17
-  (word~) sin16s_gen::$18 ← (word) sin16s_gen::usinx + (word) sin16s_gen::x5_128
-  (word) sin16s_gen::usinx ← (word~) sin16s_gen::$18
-  (signed word~) sin16s_gen::$19 ← ((signed word)) (word) sin16s_gen::usinx
-  (signed word) sin16s_gen::sinx ← (signed word~) sin16s_gen::$19
-  (boolean~) sin16s_gen::$20 ← (byte) sin16s_gen::isUpper != (byte/signed byte/word/signed word/dword/signed dword) 0
-  (boolean~) sin16s_gen::$21 ← ! (boolean~) sin16s_gen::$20
-  if((boolean~) sin16s_gen::$21) goto sin16s_gen::@4
-  (signed word~) sin16s_gen::$22 ← ((signed word)) (word) sin16s_gen::usinx
-  (signed word~) sin16s_gen::$23 ← - (signed word~) sin16s_gen::$22
-  (signed word) sin16s_gen::sinx ← (signed word~) sin16s_gen::$23
-sin16s_gen::@4:
-  *((signed word*) sin16s_gen::sintab) ← (signed word) sin16s_gen::sinx
-  (signed word*~) sin16s_gen::$24 ← (signed word*) sin16s_gen::sintab + (byte/signed byte/word/signed word/dword/signed dword) 2
-  (signed word*) sin16s_gen::sintab ← (signed word*~) sin16s_gen::$24
-  (dword~) sin16s_gen::$25 ← (dword) sin16s_gen::x + (dword) sin16s_gen::step
-  (dword) sin16s_gen::x ← (dword~) sin16s_gen::$25
+  (signed word~) sin16s_gen::$1 ← call sin16s (dword) sin16s_gen::x 
+  *((signed word*) sin16s_gen::sintab) ← (signed word~) sin16s_gen::$1
+  (signed word*~) sin16s_gen::$2 ← (signed word*) sin16s_gen::sintab + (byte/signed byte/word/signed word/dword/signed dword) 2
+  (signed word*) sin16s_gen::sintab ← (signed word*~) sin16s_gen::$2
+  (dword~) sin16s_gen::$3 ← (dword) sin16s_gen::x + (dword) sin16s_gen::step
+  (dword) sin16s_gen::x ← (dword~) sin16s_gen::$3
   (word) sin16s_gen::i ← ++ (word) sin16s_gen::i
-  (boolean~) sin16s_gen::$26 ← (word) sin16s_gen::i < (word) sin16s_gen::wavelength
-  if((boolean~) sin16s_gen::$26) goto sin16s_gen::@1
+  (boolean~) sin16s_gen::$4 ← (word) sin16s_gen::i < (word) sin16s_gen::wavelength
+  if((boolean~) sin16s_gen::$4) goto sin16s_gen::@1
 sin16s_gen::@return:
   return 
 endproc // sin16s_gen()
+proc (signed word()) sin16s((dword) sin16s::x)
+  (byte) sin16s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
+  (boolean~) sin16s::$0 ← (dword) sin16s::x >= (dword) PI_u4f28
+  (boolean~) sin16s::$1 ← ! (boolean~) sin16s::$0
+  if((boolean~) sin16s::$1) goto sin16s::@1
+  (dword~) sin16s::$2 ← (dword) sin16s::x - (dword) PI_u4f28
+  (dword) sin16s::x ← (dword~) sin16s::$2
+  (byte) sin16s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 1
+sin16s::@1:
+  (boolean~) sin16s::$3 ← (dword) sin16s::x >= (dword) PI_HALF_u4f28
+  (boolean~) sin16s::$4 ← ! (boolean~) sin16s::$3
+  if((boolean~) sin16s::$4) goto sin16s::@2
+  (dword~) sin16s::$5 ← (dword) PI_u4f28 - (dword) sin16s::x
+  (dword) sin16s::x ← (dword~) sin16s::$5
+sin16s::@2:
+  (dword~) sin16s::$6 ← (dword) sin16s::x << (byte/signed byte/word/signed word/dword/signed dword) 3
+  (word~) sin16s::$7 ← > (dword~) sin16s::$6
+  (word) sin16s::x1 ← (word~) sin16s::$7
+  (word~) sin16s::$8 ← call mul_u16_sel (word) sin16s::x1 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 
+  (word) sin16s::x2 ← (word~) sin16s::$8
+  (word~) sin16s::$9 ← call mul_u16_sel (word) sin16s::x2 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 1 
+  (word) sin16s::x3 ← (word~) sin16s::$9
+  (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6
+  (word~) sin16s::$11 ← call mul_u16_sel (word) sin16s::x3 (word/signed word/dword/signed dword~) sin16s::$10 (byte/signed byte/word/signed word/dword/signed dword) 1 
+  (word) sin16s::x3_6 ← (word~) sin16s::$11
+  (word~) sin16s::$12 ← (word) sin16s::x1 - (word) sin16s::x3_6
+  (word) sin16s::usinx ← (word~) sin16s::$12
+  (word~) sin16s::$13 ← call mul_u16_sel (word) sin16s::x3 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 
+  (word) sin16s::x4 ← (word~) sin16s::$13
+  (word~) sin16s::$14 ← call mul_u16_sel (word) sin16s::x4 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 
+  (word) sin16s::x5 ← (word~) sin16s::$14
+  (word/signed word/dword/signed dword~) sin16s::$15 ← (dword/signed dword) 65536 / (byte/word/signed word/dword/signed dword) 128
+  (word~) sin16s::$16 ← call mul_u16_sel (word) sin16s::x5 (word/signed word/dword/signed dword~) sin16s::$15 (byte/signed byte/word/signed word/dword/signed dword) 3 
+  (word) sin16s::x5_128 ← (word~) sin16s::$16
+  (word~) sin16s::$17 ← (word) sin16s::usinx + (word) sin16s::x5_128
+  (word) sin16s::usinx ← (word~) sin16s::$17
+  (signed word~) sin16s::$18 ← ((signed word)) (word) sin16s::usinx
+  (signed word) sin16s::sinx ← (signed word~) sin16s::$18
+  (boolean~) sin16s::$19 ← (byte) sin16s::isUpper != (byte/signed byte/word/signed word/dword/signed dword) 0
+  (boolean~) sin16s::$20 ← ! (boolean~) sin16s::$19
+  if((boolean~) sin16s::$20) goto sin16s::@3
+  (signed word~) sin16s::$21 ← ((signed word)) (word) sin16s::usinx
+  (signed word~) sin16s::$22 ← - (signed word~) sin16s::$21
+  (signed word) sin16s::sinx ← (signed word~) sin16s::$22
+sin16s::@3:
+  (signed word) sin16s::return ← (signed word) sin16s::sinx
+  goto sin16s::@return
+sin16s::@return:
+  (signed word) sin16s::return ← (signed word) sin16s::return
+  return (signed word) sin16s::return
+endproc // sin16s()
 proc (void()) sin16ss_gen((signed word*) sin16ss_gen::sintab , (word) sin16ss_gen::wavelength)
   (dword~) sin16ss_gen::$0 ← call div32u16u (dword) PI2_u4f28 (word) sin16ss_gen::wavelength 
   (dword) sin16ss_gen::step ← (dword~) sin16ss_gen::$0
@@ -1364,55 +1377,59 @@ SYMBOLS
 (word) rem16u
 (signed byte) rem8s
 (byte) rem8u
+(signed word()) sin16s((dword) sin16s::x)
+(boolean~) sin16s::$0
+(boolean~) sin16s::$1
+(word/signed word/dword/signed dword~) sin16s::$10
+(word~) sin16s::$11
+(word~) sin16s::$12
+(word~) sin16s::$13
+(word~) sin16s::$14
+(word/signed word/dword/signed dword~) sin16s::$15
+(word~) sin16s::$16
+(word~) sin16s::$17
+(signed word~) sin16s::$18
+(boolean~) sin16s::$19
+(dword~) sin16s::$2
+(boolean~) sin16s::$20
+(signed word~) sin16s::$21
+(signed word~) sin16s::$22
+(boolean~) sin16s::$3
+(boolean~) sin16s::$4
+(dword~) sin16s::$5
+(dword~) sin16s::$6
+(word~) sin16s::$7
+(word~) sin16s::$8
+(word~) sin16s::$9
+(label) sin16s::@1
+(label) sin16s::@2
+(label) sin16s::@3
+(label) sin16s::@return
+(byte) sin16s::isUpper
+(signed word) sin16s::return
+(signed word) sin16s::sinx
+(word) sin16s::usinx
+(dword) sin16s::x
+(word) sin16s::x1
+(word) sin16s::x2
+(word) sin16s::x3
+(word) sin16s::x3_6
+(word) sin16s::x4
+(word) sin16s::x5
+(word) sin16s::x5_128
 (void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength)
 (dword~) sin16s_gen::$0
-(boolean~) sin16s_gen::$1
-(word~) sin16s_gen::$10
-(word/signed word/dword/signed dword~) sin16s_gen::$11
-(word~) sin16s_gen::$12
-(word~) sin16s_gen::$13
-(word~) sin16s_gen::$14
-(word~) sin16s_gen::$15
-(word/signed word/dword/signed dword~) sin16s_gen::$16
-(word~) sin16s_gen::$17
-(word~) sin16s_gen::$18
-(signed word~) sin16s_gen::$19
-(boolean~) sin16s_gen::$2
-(boolean~) sin16s_gen::$20
-(boolean~) sin16s_gen::$21
-(signed word~) sin16s_gen::$22
-(signed word~) sin16s_gen::$23
-(signed word*~) sin16s_gen::$24
-(dword~) sin16s_gen::$25
-(boolean~) sin16s_gen::$26
+(signed word~) sin16s_gen::$1
+(signed word*~) sin16s_gen::$2
 (dword~) sin16s_gen::$3
 (boolean~) sin16s_gen::$4
-(boolean~) sin16s_gen::$5
-(dword~) sin16s_gen::$6
-(dword~) sin16s_gen::$7
-(word~) sin16s_gen::$8
-(word~) sin16s_gen::$9
 (label) sin16s_gen::@1
-(label) sin16s_gen::@2
-(label) sin16s_gen::@3
-(label) sin16s_gen::@4
 (label) sin16s_gen::@return
 (word) sin16s_gen::i
-(byte) sin16s_gen::isUpper
 (signed word*) sin16s_gen::sintab
-(signed word) sin16s_gen::sinx
 (dword) sin16s_gen::step
-(word) sin16s_gen::usinx
 (word) sin16s_gen::wavelength
 (dword) sin16s_gen::x
-(word) sin16s_gen::x1
-(word) sin16s_gen::x2
-(word) sin16s_gen::x3
-(word) sin16s_gen::x3_6
-(word) sin16s_gen::x4
-(word) sin16s_gen::x5
-(word) sin16s_gen::x5_128
-(dword) sin16s_gen::xp
 (void()) sin16ss_gen((signed word*) sin16ss_gen::sintab , (word) sin16ss_gen::wavelength)
 (dword~) sin16ss_gen::$0
 (word~) sin16ss_gen::$1
@@ -2114,77 +2131,88 @@ sin16s_gen: scope:[sin16s_gen]  from
   (dword) sin16s_gen::x ← (byte/signed byte/word/signed word/dword/signed dword) 0
   (word) sin16s_gen::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
   to:sin16s_gen::@1
-sin16s_gen::@1: scope:[sin16s_gen]  from sin16s_gen sin16s_gen::@4
-  (dword) sin16s_gen::xp ← (dword) sin16s_gen::x
-  (byte) sin16s_gen::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
-  (boolean~) sin16s_gen::$1 ← (dword) sin16s_gen::xp >= (dword) PI_u4f28
-  (boolean~) sin16s_gen::$2 ← ! (boolean~) sin16s_gen::$1
-  if((boolean~) sin16s_gen::$2) goto sin16s_gen::@2
-  to:sin16s_gen::@5
-sin16s_gen::@2: scope:[sin16s_gen]  from sin16s_gen::@1 sin16s_gen::@5
-  (boolean~) sin16s_gen::$4 ← (dword) sin16s_gen::xp >= (dword) PI_HALF_u4f28
-  (boolean~) sin16s_gen::$5 ← ! (boolean~) sin16s_gen::$4
-  if((boolean~) sin16s_gen::$5) goto sin16s_gen::@3
-  to:sin16s_gen::@6
-sin16s_gen::@5: scope:[sin16s_gen]  from sin16s_gen::@1
-  (dword~) sin16s_gen::$3 ← (dword) sin16s_gen::xp - (dword) PI_u4f28
-  (dword) sin16s_gen::xp ← (dword~) sin16s_gen::$3
-  (byte) sin16s_gen::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 1
-  to:sin16s_gen::@2
-sin16s_gen::@3: scope:[sin16s_gen]  from sin16s_gen::@2 sin16s_gen::@6
-  (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp << (byte/signed byte/word/signed word/dword/signed dword) 3
-  (word~) sin16s_gen::$8 ← > (dword~) sin16s_gen::$7
-  (word) sin16s_gen::x1 ← (word~) sin16s_gen::$8
-  (word~) sin16s_gen::$9 ← call mul_u16_sel (word) sin16s_gen::x1 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 
-  (word) sin16s_gen::x2 ← (word~) sin16s_gen::$9
-  (word~) sin16s_gen::$10 ← call mul_u16_sel (word) sin16s_gen::x2 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 1 
-  (word) sin16s_gen::x3 ← (word~) sin16s_gen::$10
-  (word/signed word/dword/signed dword~) sin16s_gen::$11 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6
-  (word~) sin16s_gen::$12 ← call mul_u16_sel (word) sin16s_gen::x3 (word/signed word/dword/signed dword~) sin16s_gen::$11 (byte/signed byte/word/signed word/dword/signed dword) 1 
-  (word) sin16s_gen::x3_6 ← (word~) sin16s_gen::$12
-  (word~) sin16s_gen::$13 ← (word) sin16s_gen::x1 - (word) sin16s_gen::x3_6
-  (word) sin16s_gen::usinx ← (word~) sin16s_gen::$13
-  (word~) sin16s_gen::$14 ← call mul_u16_sel (word) sin16s_gen::x3 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 
-  (word) sin16s_gen::x4 ← (word~) sin16s_gen::$14
-  (word~) sin16s_gen::$15 ← call mul_u16_sel (word) sin16s_gen::x4 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 
-  (word) sin16s_gen::x5 ← (word~) sin16s_gen::$15
-  (word/signed word/dword/signed dword~) sin16s_gen::$16 ← (dword/signed dword) 65536 / (byte/word/signed word/dword/signed dword) 128
-  (word~) sin16s_gen::$17 ← call mul_u16_sel (word) sin16s_gen::x5 (word/signed word/dword/signed dword~) sin16s_gen::$16 (byte/signed byte/word/signed word/dword/signed dword) 3 
-  (word) sin16s_gen::x5_128 ← (word~) sin16s_gen::$17
-  (word~) sin16s_gen::$18 ← (word) sin16s_gen::usinx + (word) sin16s_gen::x5_128
-  (word) sin16s_gen::usinx ← (word~) sin16s_gen::$18
-  (signed word~) sin16s_gen::$19 ← ((signed word)) (word) sin16s_gen::usinx
-  (signed word) sin16s_gen::sinx ← (signed word~) sin16s_gen::$19
-  (boolean~) sin16s_gen::$20 ← (byte) sin16s_gen::isUpper != (byte/signed byte/word/signed word/dword/signed dword) 0
-  (boolean~) sin16s_gen::$21 ← ! (boolean~) sin16s_gen::$20
-  if((boolean~) sin16s_gen::$21) goto sin16s_gen::@4
-  to:sin16s_gen::@7
-sin16s_gen::@6: scope:[sin16s_gen]  from sin16s_gen::@2
-  (dword~) sin16s_gen::$6 ← (dword) PI_u4f28 - (dword) sin16s_gen::xp
-  (dword) sin16s_gen::xp ← (dword~) sin16s_gen::$6
-  to:sin16s_gen::@3
-sin16s_gen::@4: scope:[sin16s_gen]  from sin16s_gen::@3 sin16s_gen::@7
-  *((signed word*) sin16s_gen::sintab) ← (signed word) sin16s_gen::sinx
-  (signed word*~) sin16s_gen::$24 ← (signed word*) sin16s_gen::sintab + (byte/signed byte/word/signed word/dword/signed dword) 2
-  (signed word*) sin16s_gen::sintab ← (signed word*~) sin16s_gen::$24
-  (dword~) sin16s_gen::$25 ← (dword) sin16s_gen::x + (dword) sin16s_gen::step
-  (dword) sin16s_gen::x ← (dword~) sin16s_gen::$25
+sin16s_gen::@1: scope:[sin16s_gen]  from sin16s_gen sin16s_gen::@1
+  (signed word~) sin16s_gen::$1 ← call sin16s (dword) sin16s_gen::x 
+  *((signed word*) sin16s_gen::sintab) ← (signed word~) sin16s_gen::$1
+  (signed word*~) sin16s_gen::$2 ← (signed word*) sin16s_gen::sintab + (byte/signed byte/word/signed word/dword/signed dword) 2
+  (signed word*) sin16s_gen::sintab ← (signed word*~) sin16s_gen::$2
+  (dword~) sin16s_gen::$3 ← (dword) sin16s_gen::x + (dword) sin16s_gen::step
+  (dword) sin16s_gen::x ← (dword~) sin16s_gen::$3
   (word) sin16s_gen::i ← ++ (word) sin16s_gen::i
-  (boolean~) sin16s_gen::$26 ← (word) sin16s_gen::i < (word) sin16s_gen::wavelength
-  if((boolean~) sin16s_gen::$26) goto sin16s_gen::@1
-  to:sin16s_gen::@8
-sin16s_gen::@7: scope:[sin16s_gen]  from sin16s_gen::@3
-  (signed word~) sin16s_gen::$22 ← ((signed word)) (word) sin16s_gen::usinx
-  (signed word~) sin16s_gen::$23 ← - (signed word~) sin16s_gen::$22
-  (signed word) sin16s_gen::sinx ← (signed word~) sin16s_gen::$23
-  to:sin16s_gen::@4
-sin16s_gen::@8: scope:[sin16s_gen]  from sin16s_gen::@4
+  (boolean~) sin16s_gen::$4 ← (word) sin16s_gen::i < (word) sin16s_gen::wavelength
+  if((boolean~) sin16s_gen::$4) goto sin16s_gen::@1
+  to:sin16s_gen::@2
+sin16s_gen::@2: scope:[sin16s_gen]  from sin16s_gen::@1
   to:sin16s_gen::@return
-sin16s_gen::@return: scope:[sin16s_gen]  from sin16s_gen::@8
+sin16s_gen::@return: scope:[sin16s_gen]  from sin16s_gen::@2
   return 
   to:@return
 @22: scope:[]  from @21
   to:@23
+sin16s: scope:[sin16s]  from
+  (byte) sin16s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
+  (boolean~) sin16s::$0 ← (dword) sin16s::x >= (dword) PI_u4f28
+  (boolean~) sin16s::$1 ← ! (boolean~) sin16s::$0
+  if((boolean~) sin16s::$1) goto sin16s::@1
+  to:sin16s::@4
+sin16s::@1: scope:[sin16s]  from sin16s sin16s::@4
+  (boolean~) sin16s::$3 ← (dword) sin16s::x >= (dword) PI_HALF_u4f28
+  (boolean~) sin16s::$4 ← ! (boolean~) sin16s::$3
+  if((boolean~) sin16s::$4) goto sin16s::@2
+  to:sin16s::@5
+sin16s::@4: scope:[sin16s]  from sin16s
+  (dword~) sin16s::$2 ← (dword) sin16s::x - (dword) PI_u4f28
+  (dword) sin16s::x ← (dword~) sin16s::$2
+  (byte) sin16s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 1
+  to:sin16s::@1
+sin16s::@2: scope:[sin16s]  from sin16s::@1 sin16s::@5
+  (dword~) sin16s::$6 ← (dword) sin16s::x << (byte/signed byte/word/signed word/dword/signed dword) 3
+  (word~) sin16s::$7 ← > (dword~) sin16s::$6
+  (word) sin16s::x1 ← (word~) sin16s::$7
+  (word~) sin16s::$8 ← call mul_u16_sel (word) sin16s::x1 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 
+  (word) sin16s::x2 ← (word~) sin16s::$8
+  (word~) sin16s::$9 ← call mul_u16_sel (word) sin16s::x2 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 1 
+  (word) sin16s::x3 ← (word~) sin16s::$9
+  (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6
+  (word~) sin16s::$11 ← call mul_u16_sel (word) sin16s::x3 (word/signed word/dword/signed dword~) sin16s::$10 (byte/signed byte/word/signed word/dword/signed dword) 1 
+  (word) sin16s::x3_6 ← (word~) sin16s::$11
+  (word~) sin16s::$12 ← (word) sin16s::x1 - (word) sin16s::x3_6
+  (word) sin16s::usinx ← (word~) sin16s::$12
+  (word~) sin16s::$13 ← call mul_u16_sel (word) sin16s::x3 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 
+  (word) sin16s::x4 ← (word~) sin16s::$13
+  (word~) sin16s::$14 ← call mul_u16_sel (word) sin16s::x4 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 
+  (word) sin16s::x5 ← (word~) sin16s::$14
+  (word/signed word/dword/signed dword~) sin16s::$15 ← (dword/signed dword) 65536 / (byte/word/signed word/dword/signed dword) 128
+  (word~) sin16s::$16 ← call mul_u16_sel (word) sin16s::x5 (word/signed word/dword/signed dword~) sin16s::$15 (byte/signed byte/word/signed word/dword/signed dword) 3 
+  (word) sin16s::x5_128 ← (word~) sin16s::$16
+  (word~) sin16s::$17 ← (word) sin16s::usinx + (word) sin16s::x5_128
+  (word) sin16s::usinx ← (word~) sin16s::$17
+  (signed word~) sin16s::$18 ← ((signed word)) (word) sin16s::usinx
+  (signed word) sin16s::sinx ← (signed word~) sin16s::$18
+  (boolean~) sin16s::$19 ← (byte) sin16s::isUpper != (byte/signed byte/word/signed word/dword/signed dword) 0
+  (boolean~) sin16s::$20 ← ! (boolean~) sin16s::$19
+  if((boolean~) sin16s::$20) goto sin16s::@3
+  to:sin16s::@6
+sin16s::@5: scope:[sin16s]  from sin16s::@1
+  (dword~) sin16s::$5 ← (dword) PI_u4f28 - (dword) sin16s::x
+  (dword) sin16s::x ← (dword~) sin16s::$5
+  to:sin16s::@2
+sin16s::@3: scope:[sin16s]  from sin16s::@2 sin16s::@6
+  (signed word) sin16s::return ← (signed word) sin16s::sinx
+  to:sin16s::@return
+sin16s::@6: scope:[sin16s]  from sin16s::@2
+  (signed word~) sin16s::$21 ← ((signed word)) (word) sin16s::usinx
+  (signed word~) sin16s::$22 ← - (signed word~) sin16s::$21
+  (signed word) sin16s::sinx ← (signed word~) sin16s::$22
+  to:sin16s::@3
+sin16s::@return: scope:[sin16s]  from sin16s::@3 sin16s::@7
+  (signed word) sin16s::return ← (signed word) sin16s::return
+  return (signed word) sin16s::return
+  to:@return
+sin16s::@7: scope:[sin16s]  from
+  to:sin16s::@return
+@23: scope:[]  from @22
+  to:@24
 sin16ss_gen: scope:[sin16ss_gen]  from
   (dword~) sin16ss_gen::$0 ← call div32u16u (dword) PI2_u4f28 (word) sin16ss_gen::wavelength 
   (dword) sin16ss_gen::step ← (dword~) sin16ss_gen::$0
@@ -2262,8 +2290,8 @@ sin16ss_gen::@10: scope:[sin16ss_gen]  from sin16ss_gen::@5
 sin16ss_gen::@return: scope:[sin16ss_gen]  from sin16ss_gen::@10
   return 
   to:@return
-@23: scope:[]  from @22
-  to:@24
+@24: scope:[]  from @23
+  to:@25
 mul_u16_sel: scope:[mul_u16_sel]  from
   (dword~) mul_u16_sel::$0 ← call mul16u (word) mul_u16_sel::v1 (word) mul_u16_sel::v2 
   (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select
@@ -2276,8 +2304,8 @@ mul_u16_sel::@return: scope:[mul_u16_sel]  from mul_u16_sel mul_u16_sel::@1
   to:@return
 mul_u16_sel::@1: scope:[mul_u16_sel]  from
   to:mul_u16_sel::@return
-@24: scope:[]  from @23
-  to:@25
+@25: scope:[]  from @24
+  to:@26
 div32u16u: scope:[div32u16u]  from
   (word~) div32u16u::$0 ← > (dword) div32u16u::dividend
   (word~) div32u16u::$1 ← call divr16u (word~) div32u16u::$0 (word) div32u16u::divisor (byte/signed byte/word/signed word/dword/signed dword) 0 
@@ -2294,10 +2322,10 @@ div32u16u::@return: scope:[div32u16u]  from div32u16u div32u16u::@1
   to:@return
 div32u16u::@1: scope:[div32u16u]  from
   to:div32u16u::@return
-@25: scope:[]  from @24
+@26: scope:[]  from @25
   call main 
   to:@end
-@end: scope:[]  from @25
+@end: scope:[]  from @26
 
 Removing unused procedure div8s
 Removing unused procedure div16s
@@ -2360,11 +2388,13 @@ Removing empty block @18
 Removing empty block @19
 Removing empty block @20
 Removing empty block main::@4
-Removing empty block sin16s_gen::@8
+Removing empty block sin16s_gen::@2
 Removing empty block @22
+Removing empty block sin16s::@7
 Removing empty block @23
-Removing empty block mul_u16_sel::@1
 Removing empty block @24
+Removing empty block mul_u16_sel::@1
+Removing empty block @25
 Removing empty block div32u16u::@1
 PROCEDURE MODIFY VARIABLE ANALYSIS
 divr16u modifies rem16u
@@ -2389,10 +2419,6 @@ Completing Phi functions...
 Completing Phi functions...
 Completing Phi functions...
 Completing Phi functions...
-Completing Phi functions...
-Completing Phi functions...
-Completing Phi functions...
-Completing Phi functions...
 
 CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
 @begin: scope:[]  from
@@ -2525,7 +2551,7 @@ mul16u::@return: scope:[mul16u]  from mul16u::@3
   return 
   to:@return
 @10: scope:[]  from @2
-  (word) rem16u#31 ← phi( @2/(word) rem16u#0 )
+  (word) rem16u#30 ← phi( @2/(word) rem16u#0 )
   (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
   (byte*) line_cursor#0 ← (byte*) SCREEN#0
   (byte*) char_cursor#0 ← (byte*) line_cursor#0
@@ -2670,10 +2696,10 @@ print_cls::@return: scope:[print_cls]  from print_cls::@2
   (byte*) char_cursor#15 ← (byte*) char_cursor#35
   return 
   to:@return
-main: scope:[main]  from @25
-  (byte*) char_cursor#53 ← phi( @25/(byte*) char_cursor#50 )
-  (byte*) line_cursor#13 ← phi( @25/(byte*) line_cursor#12 )
-  (word) rem16u#20 ← phi( @25/(word) rem16u#25 )
+main: scope:[main]  from @26
+  (byte*) char_cursor#53 ← phi( @26/(byte*) char_cursor#50 )
+  (byte*) line_cursor#13 ← phi( @26/(byte*) line_cursor#12 )
+  (word) rem16u#20 ← phi( @26/(word) rem16u#25 )
   (word) main::wavelength#0 ← (byte/signed byte/word/signed word/dword/signed dword) 120
   (signed word[120]) main::sintab1#0 ← { fill( 120, 0) }
   (signed word*) sin16s_gen::sintab#0 ← (signed word[120]) main::sintab1#0
@@ -2689,7 +2715,7 @@ main::@5: scope:[main]  from main
   call print_cls param-assignment
   to:main::@6
 main::@6: scope:[main]  from main::@5
-  (word) rem16u#36 ← phi( main::@5/(word) rem16u#3 )
+  (word) rem16u#33 ← phi( main::@5/(word) rem16u#3 )
   (word) main::wavelength#6 ← phi( main::@5/(word) main::wavelength#8 )
   (byte*) char_cursor#36 ← phi( main::@5/(byte*) char_cursor#15 )
   (byte*) line_cursor#7 ← phi( main::@5/(byte*) line_cursor#2 )
@@ -2699,7 +2725,7 @@ main::@6: scope:[main]  from main::@5
   to:main::@1
 main::@1: scope:[main]  from main::@6 main::@8
   (byte*) line_cursor#17 ← phi( main::@6/(byte*) line_cursor#3 main::@8/(byte*) line_cursor#11 )
-  (word) rem16u#33 ← phi( main::@6/(word) rem16u#36 main::@8/(word) rem16u#21 )
+  (word) rem16u#31 ← phi( main::@6/(word) rem16u#33 main::@8/(word) rem16u#21 )
   (word) main::wavelength#4 ← phi( main::@6/(word) main::wavelength#6 main::@8/(word) main::wavelength#1 )
   (byte*) char_cursor#54 ← phi( main::@6/(byte*) char_cursor#16 main::@8/(byte*) char_cursor#18 )
   (signed word*) main::st1#2 ← phi( main::@6/(signed word*) main::st1#0 main::@8/(signed word*) main::st1#1 )
@@ -2710,7 +2736,7 @@ main::@1: scope:[main]  from main::@6 main::@8
   to:main::@3
 main::@2: scope:[main]  from main::@1 main::@9
   (byte*) line_cursor#16 ← phi( main::@1/(byte*) line_cursor#17 main::@9/(byte*) line_cursor#18 )
-  (word) rem16u#30 ← phi( main::@1/(word) rem16u#33 main::@9/(word) rem16u#34 )
+  (word) rem16u#29 ← phi( main::@1/(word) rem16u#31 main::@9/(word) rem16u#32 )
   (word) main::wavelength#3 ← phi( main::@1/(word) main::wavelength#4 main::@9/(word) main::wavelength#5 )
   (signed word*) main::st1#5 ← phi( main::@1/(signed word*) main::st1#2 main::@9/(signed word*) main::st1#6 )
   (byte*) char_cursor#48 ← phi( main::@1/(byte*) char_cursor#54 main::@9/(byte*) char_cursor#19 )
@@ -2720,7 +2746,7 @@ main::@2: scope:[main]  from main::@1 main::@9
   to:main::@7
 main::@7: scope:[main]  from main::@2
   (byte*) line_cursor#14 ← phi( main::@2/(byte*) line_cursor#16 )
-  (word) rem16u#26 ← phi( main::@2/(word) rem16u#30 )
+  (word) rem16u#26 ← phi( main::@2/(word) rem16u#29 )
   (word) main::wavelength#2 ← phi( main::@2/(word) main::wavelength#3 )
   (signed word*) main::st1#4 ← phi( main::@2/(signed word*) main::st1#5 )
   (byte*) char_cursor#37 ← phi( main::@2/(byte*) char_cursor#5 )
@@ -2744,7 +2770,7 @@ main::@8: scope:[main]  from main::@7
   to:main::@return
 main::@3: scope:[main]  from main::@1
   (byte*) line_cursor#19 ← phi( main::@1/(byte*) line_cursor#17 )
-  (word) rem16u#37 ← phi( main::@1/(word) rem16u#33 )
+  (word) rem16u#34 ← phi( main::@1/(word) rem16u#31 )
   (word) main::wavelength#7 ← phi( main::@1/(word) main::wavelength#4 )
   (signed word*) main::st1#7 ← phi( main::@1/(signed word*) main::st1#2 )
   (signed word) main::sw#3 ← phi( main::@1/(signed word) main::sw#0 )
@@ -2754,7 +2780,7 @@ main::@3: scope:[main]  from main::@1
   to:main::@9
 main::@9: scope:[main]  from main::@3
   (byte*) line_cursor#18 ← phi( main::@3/(byte*) line_cursor#19 )
-  (word) rem16u#34 ← phi( main::@3/(word) rem16u#37 )
+  (word) rem16u#32 ← phi( main::@3/(word) rem16u#34 )
   (word) main::wavelength#5 ← phi( main::@3/(word) main::wavelength#7 )
   (signed word*) main::st1#6 ← phi( main::@3/(signed word*) main::st1#7 )
   (signed word) main::sw#2 ← phi( main::@3/(signed word) main::sw#3 )
@@ -2773,23 +2799,23 @@ main::@return: scope:[main]  from main::@8
 @21: scope:[]  from @10
   (byte*) char_cursor#55 ← phi( @10/(byte*) char_cursor#0 )
   (byte*) line_cursor#15 ← phi( @10/(byte*) line_cursor#0 )
-  (word) rem16u#29 ← phi( @10/(word) rem16u#31 )
+  (word) rem16u#28 ← phi( @10/(word) rem16u#30 )
   (dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713
   (dword) PI_u4f28#0 ← (dword/signed dword) 843314857
   (dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428
-  to:@25
+  to:@26
 sin16s_gen: scope:[sin16s_gen]  from main
-  (signed word*) sin16s_gen::sintab#16 ← phi( main/(signed word*) sin16s_gen::sintab#0 )
+  (signed word*) sin16s_gen::sintab#5 ← phi( main/(signed word*) sin16s_gen::sintab#0 )
   (word) rem16u#22 ← phi( main/(word) rem16u#20 )
   (word) sin16s_gen::wavelength#1 ← phi( main/(word) sin16s_gen::wavelength#0 )
   (dword) div32u16u::dividend#0 ← (dword) PI2_u4f28#0
   (word) div32u16u::divisor#0 ← (word) sin16s_gen::wavelength#1
   call div32u16u param-assignment
   (dword) div32u16u::return#0 ← (dword) div32u16u::return#2
-  to:sin16s_gen::@9
-sin16s_gen::@9: scope:[sin16s_gen]  from sin16s_gen
-  (word) sin16s_gen::wavelength#15 ← phi( sin16s_gen/(word) sin16s_gen::wavelength#1 )
-  (signed word*) sin16s_gen::sintab#15 ← phi( sin16s_gen/(signed word*) sin16s_gen::sintab#16 )
+  to:sin16s_gen::@3
+sin16s_gen::@3: scope:[sin16s_gen]  from sin16s_gen
+  (word) sin16s_gen::wavelength#4 ← phi( sin16s_gen/(word) sin16s_gen::wavelength#1 )
+  (signed word*) sin16s_gen::sintab#4 ← phi( sin16s_gen/(signed word*) sin16s_gen::sintab#5 )
   (word) rem16u#14 ← phi( sin16s_gen/(word) rem16u#9 )
   (dword) div32u16u::return#3 ← phi( sin16s_gen/(dword) div32u16u::return#0 )
   (dword~) sin16s_gen::$0 ← (dword) div32u16u::return#3
@@ -2798,228 +2824,177 @@ sin16s_gen::@9: scope:[sin16s_gen]  from sin16s_gen
   (dword) sin16s_gen::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
   (word) sin16s_gen::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
   to:sin16s_gen::@1
-sin16s_gen::@1: scope:[sin16s_gen]  from sin16s_gen::@4 sin16s_gen::@9
-  (word) rem16u#44 ← phi( sin16s_gen::@4/(word) rem16u#23 sin16s_gen::@9/(word) rem16u#5 )
-  (word) sin16s_gen::wavelength#13 ← phi( sin16s_gen::@4/(word) sin16s_gen::wavelength#2 sin16s_gen::@9/(word) sin16s_gen::wavelength#15 )
-  (word) sin16s_gen::i#13 ← phi( sin16s_gen::@4/(word) sin16s_gen::i#1 sin16s_gen::@9/(word) sin16s_gen::i#0 )
-  (dword) sin16s_gen::step#12 ← phi( sin16s_gen::@4/(dword) sin16s_gen::step#1 sin16s_gen::@9/(dword) sin16s_gen::step#0 )
-  (signed word*) sin16s_gen::sintab#13 ← phi( sin16s_gen::@4/(signed word*) sin16s_gen::sintab#1 sin16s_gen::@9/(signed word*) sin16s_gen::sintab#15 )
-  (dword) sin16s_gen::x#2 ← phi( sin16s_gen::@4/(dword) sin16s_gen::x#1 sin16s_gen::@9/(dword) sin16s_gen::x#0 )
-  (dword) sin16s_gen::xp#0 ← (dword) sin16s_gen::x#2
-  (byte) sin16s_gen::isUpper#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
-  (boolean~) sin16s_gen::$1 ← (dword) sin16s_gen::xp#0 >= (dword) PI_u4f28#0
-  (boolean~) sin16s_gen::$2 ← ! (boolean~) sin16s_gen::$1
-  if((boolean~) sin16s_gen::$2) goto sin16s_gen::@2
-  to:sin16s_gen::@5
-sin16s_gen::@2: scope:[sin16s_gen]  from sin16s_gen::@1 sin16s_gen::@5
-  (word) rem16u#42 ← phi( sin16s_gen::@1/(word) rem16u#44 sin16s_gen::@5/(word) rem16u#45 )
-  (word) sin16s_gen::wavelength#11 ← phi( sin16s_gen::@1/(word) sin16s_gen::wavelength#13 sin16s_gen::@5/(word) sin16s_gen::wavelength#14 )
-  (word) sin16s_gen::i#11 ← phi( sin16s_gen::@1/(word) sin16s_gen::i#13 sin16s_gen::@5/(word) sin16s_gen::i#14 )
-  (dword) sin16s_gen::step#10 ← phi( sin16s_gen::@1/(dword) sin16s_gen::step#12 sin16s_gen::@5/(dword) sin16s_gen::step#13 )
-  (dword) sin16s_gen::x#12 ← phi( sin16s_gen::@1/(dword) sin16s_gen::x#2 sin16s_gen::@5/(dword) sin16s_gen::x#14 )
-  (signed word*) sin16s_gen::sintab#11 ← phi( sin16s_gen::@1/(signed word*) sin16s_gen::sintab#13 sin16s_gen::@5/(signed word*) sin16s_gen::sintab#14 )
-  (byte) sin16s_gen::isUpper#9 ← phi( sin16s_gen::@1/(byte) sin16s_gen::isUpper#0 sin16s_gen::@5/(byte) sin16s_gen::isUpper#1 )
-  (dword) sin16s_gen::xp#3 ← phi( sin16s_gen::@1/(dword) sin16s_gen::xp#0 sin16s_gen::@5/(dword) sin16s_gen::xp#1 )
-  (boolean~) sin16s_gen::$4 ← (dword) sin16s_gen::xp#3 >= (dword) PI_HALF_u4f28#0
-  (boolean~) sin16s_gen::$5 ← ! (boolean~) sin16s_gen::$4
-  if((boolean~) sin16s_gen::$5) goto sin16s_gen::@3
-  to:sin16s_gen::@6
-sin16s_gen::@5: scope:[sin16s_gen]  from sin16s_gen::@1
-  (word) rem16u#45 ← phi( sin16s_gen::@1/(word) rem16u#44 )
-  (word) sin16s_gen::wavelength#14 ← phi( sin16s_gen::@1/(word) sin16s_gen::wavelength#13 )
-  (word) sin16s_gen::i#14 ← phi( sin16s_gen::@1/(word) sin16s_gen::i#13 )
-  (dword) sin16s_gen::step#13 ← phi( sin16s_gen::@1/(dword) sin16s_gen::step#12 )
-  (dword) sin16s_gen::x#14 ← phi( sin16s_gen::@1/(dword) sin16s_gen::x#2 )
-  (signed word*) sin16s_gen::sintab#14 ← phi( sin16s_gen::@1/(signed word*) sin16s_gen::sintab#13 )
-  (dword) sin16s_gen::xp#4 ← phi( sin16s_gen::@1/(dword) sin16s_gen::xp#0 )
-  (dword~) sin16s_gen::$3 ← (dword) sin16s_gen::xp#4 - (dword) PI_u4f28#0
-  (dword) sin16s_gen::xp#1 ← (dword~) sin16s_gen::$3
-  (byte) sin16s_gen::isUpper#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
-  to:sin16s_gen::@2
-sin16s_gen::@3: scope:[sin16s_gen]  from sin16s_gen::@2 sin16s_gen::@6
-  (word) rem16u#41 ← phi( sin16s_gen::@2/(word) rem16u#42 sin16s_gen::@6/(word) rem16u#43 )
-  (word) sin16s_gen::wavelength#10 ← phi( sin16s_gen::@2/(word) sin16s_gen::wavelength#11 sin16s_gen::@6/(word) sin16s_gen::wavelength#12 )
-  (word) sin16s_gen::i#10 ← phi( sin16s_gen::@2/(word) sin16s_gen::i#11 sin16s_gen::@6/(word) sin16s_gen::i#12 )
-  (dword) sin16s_gen::step#9 ← phi( sin16s_gen::@2/(dword) sin16s_gen::step#10 sin16s_gen::@6/(dword) sin16s_gen::step#11 )
-  (dword) sin16s_gen::x#11 ← phi( sin16s_gen::@2/(dword) sin16s_gen::x#12 sin16s_gen::@6/(dword) sin16s_gen::x#13 )
-  (signed word*) sin16s_gen::sintab#10 ← phi( sin16s_gen::@2/(signed word*) sin16s_gen::sintab#11 sin16s_gen::@6/(signed word*) sin16s_gen::sintab#12 )
-  (byte) sin16s_gen::isUpper#8 ← phi( sin16s_gen::@2/(byte) sin16s_gen::isUpper#9 sin16s_gen::@6/(byte) sin16s_gen::isUpper#10 )
-  (dword) sin16s_gen::xp#5 ← phi( sin16s_gen::@2/(dword) sin16s_gen::xp#3 sin16s_gen::@6/(dword) sin16s_gen::xp#2 )
-  (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3
-  (word~) sin16s_gen::$8 ← > (dword~) sin16s_gen::$7
-  (word) sin16s_gen::x1#0 ← (word~) sin16s_gen::$8
-  (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0
-  (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0
-  (byte) mul_u16_sel::select#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
-  call mul_u16_sel param-assignment
-  (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#7
-  to:sin16s_gen::@10
-sin16s_gen::@10: scope:[sin16s_gen]  from sin16s_gen::@3
-  (word) rem16u#40 ← phi( sin16s_gen::@3/(word) rem16u#41 )
-  (word) sin16s_gen::wavelength#9 ← phi( sin16s_gen::@3/(word) sin16s_gen::wavelength#10 )
-  (word) sin16s_gen::i#9 ← phi( sin16s_gen::@3/(word) sin16s_gen::i#10 )
-  (dword) sin16s_gen::step#8 ← phi( sin16s_gen::@3/(dword) sin16s_gen::step#9 )
-  (dword) sin16s_gen::x#10 ← phi( sin16s_gen::@3/(dword) sin16s_gen::x#11 )
-  (signed word*) sin16s_gen::sintab#9 ← phi( sin16s_gen::@3/(signed word*) sin16s_gen::sintab#10 )
-  (byte) sin16s_gen::isUpper#7 ← phi( sin16s_gen::@3/(byte) sin16s_gen::isUpper#8 )
-  (word) sin16s_gen::x1#1 ← phi( sin16s_gen::@3/(word) sin16s_gen::x1#0 )
-  (word) mul_u16_sel::return#8 ← phi( sin16s_gen::@3/(word) mul_u16_sel::return#0 )
-  (word~) sin16s_gen::$9 ← (word) mul_u16_sel::return#8
-  (word) sin16s_gen::x2#0 ← (word~) sin16s_gen::$9
-  (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0
-  (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#1
-  (byte) mul_u16_sel::select#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
-  call mul_u16_sel param-assignment
-  (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#7
-  to:sin16s_gen::@11
-sin16s_gen::@11: scope:[sin16s_gen]  from sin16s_gen::@10
-  (word) rem16u#39 ← phi( sin16s_gen::@10/(word) rem16u#40 )
-  (word) sin16s_gen::wavelength#8 ← phi( sin16s_gen::@10/(word) sin16s_gen::wavelength#9 )
-  (word) sin16s_gen::i#8 ← phi( sin16s_gen::@10/(word) sin16s_gen::i#9 )
-  (dword) sin16s_gen::step#7 ← phi( sin16s_gen::@10/(dword) sin16s_gen::step#8 )
-  (dword) sin16s_gen::x#9 ← phi( sin16s_gen::@10/(dword) sin16s_gen::x#10 )
-  (signed word*) sin16s_gen::sintab#8 ← phi( sin16s_gen::@10/(signed word*) sin16s_gen::sintab#9 )
-  (byte) sin16s_gen::isUpper#6 ← phi( sin16s_gen::@10/(byte) sin16s_gen::isUpper#7 )
-  (word) sin16s_gen::x1#4 ← phi( sin16s_gen::@10/(word) sin16s_gen::x1#1 )
-  (word) mul_u16_sel::return#9 ← phi( sin16s_gen::@10/(word) mul_u16_sel::return#1 )
-  (word~) sin16s_gen::$10 ← (word) mul_u16_sel::return#9
-  (word) sin16s_gen::x3#0 ← (word~) sin16s_gen::$10
-  (word/signed word/dword/signed dword~) sin16s_gen::$11 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6
-  (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0
-  (word) mul_u16_sel::v2#2 ← (word/signed word/dword/signed dword~) sin16s_gen::$11
-  (byte) mul_u16_sel::select#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1
-  call mul_u16_sel param-assignment
-  (word) mul_u16_sel::return#2 ← (word) mul_u16_sel::return#7
-  to:sin16s_gen::@12
-sin16s_gen::@12: scope:[sin16s_gen]  from sin16s_gen::@11
-  (word) rem16u#38 ← phi( sin16s_gen::@11/(word) rem16u#39 )
-  (word) sin16s_gen::wavelength#7 ← phi( sin16s_gen::@11/(word) sin16s_gen::wavelength#8 )
-  (word) sin16s_gen::i#7 ← phi( sin16s_gen::@11/(word) sin16s_gen::i#8 )
-  (dword) sin16s_gen::step#6 ← phi( sin16s_gen::@11/(dword) sin16s_gen::step#7 )
-  (dword) sin16s_gen::x#8 ← phi( sin16s_gen::@11/(dword) sin16s_gen::x#9 )
-  (signed word*) sin16s_gen::sintab#7 ← phi( sin16s_gen::@11/(signed word*) sin16s_gen::sintab#8 )
-  (byte) sin16s_gen::isUpper#5 ← phi( sin16s_gen::@11/(byte) sin16s_gen::isUpper#6 )
-  (word) sin16s_gen::x3#1 ← phi( sin16s_gen::@11/(word) sin16s_gen::x3#0 )
-  (word) sin16s_gen::x1#2 ← phi( sin16s_gen::@11/(word) sin16s_gen::x1#4 )
-  (word) mul_u16_sel::return#10 ← phi( sin16s_gen::@11/(word) mul_u16_sel::return#2 )
-  (word~) sin16s_gen::$12 ← (word) mul_u16_sel::return#10
-  (word) sin16s_gen::x3_6#0 ← (word~) sin16s_gen::$12
-  (word~) sin16s_gen::$13 ← (word) sin16s_gen::x1#2 - (word) sin16s_gen::x3_6#0
-  (word) sin16s_gen::usinx#0 ← (word~) sin16s_gen::$13
-  (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#1
-  (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#2
-  (byte) mul_u16_sel::select#3 ← (byte/signed byte/word/signed word/dword/signed dword) 0
-  call mul_u16_sel param-assignment
-  (word) mul_u16_sel::return#3 ← (word) mul_u16_sel::return#7
-  to:sin16s_gen::@13
-sin16s_gen::@13: scope:[sin16s_gen]  from sin16s_gen::@12
-  (word) rem16u#35 ← phi( sin16s_gen::@12/(word) rem16u#38 )
-  (word) sin16s_gen::wavelength#6 ← phi( sin16s_gen::@12/(word) sin16s_gen::wavelength#7 )
-  (word) sin16s_gen::i#6 ← phi( sin16s_gen::@12/(word) sin16s_gen::i#7 )
-  (dword) sin16s_gen::step#5 ← phi( sin16s_gen::@12/(dword) sin16s_gen::step#6 )
-  (dword) sin16s_gen::x#7 ← phi( sin16s_gen::@12/(dword) sin16s_gen::x#8 )
-  (signed word*) sin16s_gen::sintab#6 ← phi( sin16s_gen::@12/(signed word*) sin16s_gen::sintab#7 )
-  (byte) sin16s_gen::isUpper#4 ← phi( sin16s_gen::@12/(byte) sin16s_gen::isUpper#5 )
-  (word) sin16s_gen::usinx#5 ← phi( sin16s_gen::@12/(word) sin16s_gen::usinx#0 )
-  (word) sin16s_gen::x1#3 ← phi( sin16s_gen::@12/(word) sin16s_gen::x1#2 )
-  (word) mul_u16_sel::return#11 ← phi( sin16s_gen::@12/(word) mul_u16_sel::return#3 )
-  (word~) sin16s_gen::$14 ← (word) mul_u16_sel::return#11
-  (word) sin16s_gen::x4#0 ← (word~) sin16s_gen::$14
-  (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0
-  (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#3
-  (byte) mul_u16_sel::select#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0
-  call mul_u16_sel param-assignment
-  (word) mul_u16_sel::return#4 ← (word) mul_u16_sel::return#7
-  to:sin16s_gen::@14
-sin16s_gen::@14: scope:[sin16s_gen]  from sin16s_gen::@13
-  (word) rem16u#32 ← phi( sin16s_gen::@13/(word) rem16u#35 )
-  (word) sin16s_gen::wavelength#5 ← phi( sin16s_gen::@13/(word) sin16s_gen::wavelength#6 )
-  (word) sin16s_gen::i#5 ← phi( sin16s_gen::@13/(word) sin16s_gen::i#6 )
-  (dword) sin16s_gen::step#4 ← phi( sin16s_gen::@13/(dword) sin16s_gen::step#5 )
-  (dword) sin16s_gen::x#6 ← phi( sin16s_gen::@13/(dword) sin16s_gen::x#7 )
-  (signed word*) sin16s_gen::sintab#5 ← phi( sin16s_gen::@13/(signed word*) sin16s_gen::sintab#6 )
-  (byte) sin16s_gen::isUpper#3 ← phi( sin16s_gen::@13/(byte) sin16s_gen::isUpper#4 )
-  (word) sin16s_gen::usinx#4 ← phi( sin16s_gen::@13/(word) sin16s_gen::usinx#5 )
-  (word) mul_u16_sel::return#12 ← phi( sin16s_gen::@13/(word) mul_u16_sel::return#4 )
-  (word~) sin16s_gen::$15 ← (word) mul_u16_sel::return#12
-  (word) sin16s_gen::x5#0 ← (word~) sin16s_gen::$15
-  (word/signed word/dword/signed dword~) sin16s_gen::$16 ← (dword/signed dword) 65536 / (byte/word/signed word/dword/signed dword) 128
-  (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0
-  (word) mul_u16_sel::v2#5 ← (word/signed word/dword/signed dword~) sin16s_gen::$16
-  (byte) mul_u16_sel::select#5 ← (byte/signed byte/word/signed word/dword/signed dword) 3
-  call mul_u16_sel param-assignment
-  (word) mul_u16_sel::return#5 ← (word) mul_u16_sel::return#7
-  to:sin16s_gen::@15
-sin16s_gen::@15: scope:[sin16s_gen]  from sin16s_gen::@14
-  (word) rem16u#27 ← phi( sin16s_gen::@14/(word) rem16u#32 )
-  (word) sin16s_gen::wavelength#3 ← phi( sin16s_gen::@14/(word) sin16s_gen::wavelength#5 )
-  (word) sin16s_gen::i#3 ← phi( sin16s_gen::@14/(word) sin16s_gen::i#5 )
-  (dword) sin16s_gen::step#2 ← phi( sin16s_gen::@14/(dword) sin16s_gen::step#4 )
-  (dword) sin16s_gen::x#4 ← phi( sin16s_gen::@14/(dword) sin16s_gen::x#6 )
-  (signed word*) sin16s_gen::sintab#3 ← phi( sin16s_gen::@14/(signed word*) sin16s_gen::sintab#5 )
-  (byte) sin16s_gen::isUpper#2 ← phi( sin16s_gen::@14/(byte) sin16s_gen::isUpper#3 )
-  (word) sin16s_gen::usinx#2 ← phi( sin16s_gen::@14/(word) sin16s_gen::usinx#4 )
-  (word) mul_u16_sel::return#13 ← phi( sin16s_gen::@14/(word) mul_u16_sel::return#5 )
-  (word~) sin16s_gen::$17 ← (word) mul_u16_sel::return#13
-  (word) sin16s_gen::x5_128#0 ← (word~) sin16s_gen::$17
-  (word~) sin16s_gen::$18 ← (word) sin16s_gen::usinx#2 + (word) sin16s_gen::x5_128#0
-  (word) sin16s_gen::usinx#1 ← (word~) sin16s_gen::$18
-  (signed word~) sin16s_gen::$19 ← ((signed word)) (word) sin16s_gen::usinx#1
-  (signed word) sin16s_gen::sinx#0 ← (signed word~) sin16s_gen::$19
-  (boolean~) sin16s_gen::$20 ← (byte) sin16s_gen::isUpper#2 != (byte/signed byte/word/signed word/dword/signed dword) 0
-  (boolean~) sin16s_gen::$21 ← ! (boolean~) sin16s_gen::$20
-  if((boolean~) sin16s_gen::$21) goto sin16s_gen::@4
-  to:sin16s_gen::@7
-sin16s_gen::@6: scope:[sin16s_gen]  from sin16s_gen::@2
-  (word) rem16u#43 ← phi( sin16s_gen::@2/(word) rem16u#42 )
-  (word) sin16s_gen::wavelength#12 ← phi( sin16s_gen::@2/(word) sin16s_gen::wavelength#11 )
-  (word) sin16s_gen::i#12 ← phi( sin16s_gen::@2/(word) sin16s_gen::i#11 )
-  (dword) sin16s_gen::step#11 ← phi( sin16s_gen::@2/(dword) sin16s_gen::step#10 )
-  (dword) sin16s_gen::x#13 ← phi( sin16s_gen::@2/(dword) sin16s_gen::x#12 )
-  (signed word*) sin16s_gen::sintab#12 ← phi( sin16s_gen::@2/(signed word*) sin16s_gen::sintab#11 )
-  (byte) sin16s_gen::isUpper#10 ← phi( sin16s_gen::@2/(byte) sin16s_gen::isUpper#9 )
-  (dword) sin16s_gen::xp#6 ← phi( sin16s_gen::@2/(dword) sin16s_gen::xp#3 )
-  (dword~) sin16s_gen::$6 ← (dword) PI_u4f28#0 - (dword) sin16s_gen::xp#6
-  (dword) sin16s_gen::xp#2 ← (dword~) sin16s_gen::$6
-  to:sin16s_gen::@3
-sin16s_gen::@4: scope:[sin16s_gen]  from sin16s_gen::@15 sin16s_gen::@7
-  (word) rem16u#23 ← phi( sin16s_gen::@15/(word) rem16u#27 sin16s_gen::@7/(word) rem16u#28 )
-  (word) sin16s_gen::wavelength#2 ← phi( sin16s_gen::@15/(word) sin16s_gen::wavelength#3 sin16s_gen::@7/(word) sin16s_gen::wavelength#4 )
-  (word) sin16s_gen::i#2 ← phi( sin16s_gen::@15/(word) sin16s_gen::i#3 sin16s_gen::@7/(word) sin16s_gen::i#4 )
-  (dword) sin16s_gen::step#1 ← phi( sin16s_gen::@15/(dword) sin16s_gen::step#2 sin16s_gen::@7/(dword) sin16s_gen::step#3 )
-  (dword) sin16s_gen::x#3 ← phi( sin16s_gen::@15/(dword) sin16s_gen::x#4 sin16s_gen::@7/(dword) sin16s_gen::x#5 )
-  (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@15/(signed word*) sin16s_gen::sintab#3 sin16s_gen::@7/(signed word*) sin16s_gen::sintab#4 )
-  (signed word) sin16s_gen::sinx#2 ← phi( sin16s_gen::@15/(signed word) sin16s_gen::sinx#0 sin16s_gen::@7/(signed word) sin16s_gen::sinx#1 )
-  *((signed word*) sin16s_gen::sintab#2) ← (signed word) sin16s_gen::sinx#2
-  (signed word*~) sin16s_gen::$24 ← (signed word*) sin16s_gen::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2
-  (signed word*) sin16s_gen::sintab#1 ← (signed word*~) sin16s_gen::$24
-  (dword~) sin16s_gen::$25 ← (dword) sin16s_gen::x#3 + (dword) sin16s_gen::step#1
-  (dword) sin16s_gen::x#1 ← (dword~) sin16s_gen::$25
-  (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#2
-  (boolean~) sin16s_gen::$26 ← (word) sin16s_gen::i#1 < (word) sin16s_gen::wavelength#2
-  if((boolean~) sin16s_gen::$26) goto sin16s_gen::@1
-  to:sin16s_gen::@return
-sin16s_gen::@7: scope:[sin16s_gen]  from sin16s_gen::@15
-  (word) rem16u#28 ← phi( sin16s_gen::@15/(word) rem16u#27 )
-  (word) sin16s_gen::wavelength#4 ← phi( sin16s_gen::@15/(word) sin16s_gen::wavelength#3 )
-  (word) sin16s_gen::i#4 ← phi( sin16s_gen::@15/(word) sin16s_gen::i#3 )
-  (dword) sin16s_gen::step#3 ← phi( sin16s_gen::@15/(dword) sin16s_gen::step#2 )
-  (dword) sin16s_gen::x#5 ← phi( sin16s_gen::@15/(dword) sin16s_gen::x#4 )
-  (signed word*) sin16s_gen::sintab#4 ← phi( sin16s_gen::@15/(signed word*) sin16s_gen::sintab#3 )
-  (word) sin16s_gen::usinx#3 ← phi( sin16s_gen::@15/(word) sin16s_gen::usinx#1 )
-  (signed word~) sin16s_gen::$22 ← ((signed word)) (word) sin16s_gen::usinx#3
-  (signed word~) sin16s_gen::$23 ← - (signed word~) sin16s_gen::$22
-  (signed word) sin16s_gen::sinx#1 ← (signed word~) sin16s_gen::$23
+sin16s_gen::@1: scope:[sin16s_gen]  from sin16s_gen::@3 sin16s_gen::@4
+  (word) rem16u#27 ← phi( sin16s_gen::@3/(word) rem16u#5 sin16s_gen::@4/(word) rem16u#23 )
+  (word) sin16s_gen::wavelength#3 ← phi( sin16s_gen::@3/(word) sin16s_gen::wavelength#4 sin16s_gen::@4/(word) sin16s_gen::wavelength#2 )
+  (word) sin16s_gen::i#3 ← phi( sin16s_gen::@3/(word) sin16s_gen::i#0 sin16s_gen::@4/(word) sin16s_gen::i#1 )
+  (dword) sin16s_gen::step#2 ← phi( sin16s_gen::@3/(dword) sin16s_gen::step#0 sin16s_gen::@4/(dword) sin16s_gen::step#1 )
+  (signed word*) sin16s_gen::sintab#3 ← phi( sin16s_gen::@3/(signed word*) sin16s_gen::sintab#4 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#1 )
+  (dword) sin16s_gen::x#2 ← phi( sin16s_gen::@3/(dword) sin16s_gen::x#0 sin16s_gen::@4/(dword) sin16s_gen::x#1 )
+  (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2
+  call sin16s param-assignment
+  (signed word) sin16s::return#0 ← (signed word) sin16s::return#2
   to:sin16s_gen::@4
+sin16s_gen::@4: scope:[sin16s_gen]  from sin16s_gen::@1
+  (word) rem16u#23 ← phi( sin16s_gen::@1/(word) rem16u#27 )
+  (word) sin16s_gen::wavelength#2 ← phi( sin16s_gen::@1/(word) sin16s_gen::wavelength#3 )
+  (word) sin16s_gen::i#2 ← phi( sin16s_gen::@1/(word) sin16s_gen::i#3 )
+  (dword) sin16s_gen::step#1 ← phi( sin16s_gen::@1/(dword) sin16s_gen::step#2 )
+  (dword) sin16s_gen::x#3 ← phi( sin16s_gen::@1/(dword) sin16s_gen::x#2 )
+  (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@1/(signed word*) sin16s_gen::sintab#3 )
+  (signed word) sin16s::return#3 ← phi( sin16s_gen::@1/(signed word) sin16s::return#0 )
+  (signed word~) sin16s_gen::$1 ← (signed word) sin16s::return#3
+  *((signed word*) sin16s_gen::sintab#2) ← (signed word~) sin16s_gen::$1
+  (signed word*~) sin16s_gen::$2 ← (signed word*) sin16s_gen::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2
+  (signed word*) sin16s_gen::sintab#1 ← (signed word*~) sin16s_gen::$2
+  (dword~) sin16s_gen::$3 ← (dword) sin16s_gen::x#3 + (dword) sin16s_gen::step#1
+  (dword) sin16s_gen::x#1 ← (dword~) sin16s_gen::$3
+  (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#2
+  (boolean~) sin16s_gen::$4 ← (word) sin16s_gen::i#1 < (word) sin16s_gen::wavelength#2
+  if((boolean~) sin16s_gen::$4) goto sin16s_gen::@1
+  to:sin16s_gen::@return
 sin16s_gen::@return: scope:[sin16s_gen]  from sin16s_gen::@4
   (word) rem16u#15 ← phi( sin16s_gen::@4/(word) rem16u#23 )
   (word) rem16u#6 ← (word) rem16u#15
   return 
   to:@return
-mul_u16_sel: scope:[mul_u16_sel]  from sin16s_gen::@10 sin16s_gen::@11 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@14 sin16s_gen::@3
-  (byte) mul_u16_sel::select#7 ← phi( sin16s_gen::@10/(byte) mul_u16_sel::select#1 sin16s_gen::@11/(byte) mul_u16_sel::select#2 sin16s_gen::@12/(byte) mul_u16_sel::select#3 sin16s_gen::@13/(byte) mul_u16_sel::select#4 sin16s_gen::@14/(byte) mul_u16_sel::select#5 sin16s_gen::@3/(byte) mul_u16_sel::select#0 )
-  (word) mul_u16_sel::v2#6 ← phi( sin16s_gen::@10/(word) mul_u16_sel::v2#1 sin16s_gen::@11/(word) mul_u16_sel::v2#2 sin16s_gen::@12/(word) mul_u16_sel::v2#3 sin16s_gen::@13/(word) mul_u16_sel::v2#4 sin16s_gen::@14/(word) mul_u16_sel::v2#5 sin16s_gen::@3/(word) mul_u16_sel::v2#0 )
-  (word) mul_u16_sel::v1#6 ← phi( sin16s_gen::@10/(word) mul_u16_sel::v1#1 sin16s_gen::@11/(word) mul_u16_sel::v1#2 sin16s_gen::@12/(word) mul_u16_sel::v1#3 sin16s_gen::@13/(word) mul_u16_sel::v1#4 sin16s_gen::@14/(word) mul_u16_sel::v1#5 sin16s_gen::@3/(word) mul_u16_sel::v1#0 )
+sin16s: scope:[sin16s]  from sin16s_gen::@1
+  (dword) sin16s::x#3 ← phi( sin16s_gen::@1/(dword) sin16s::x#0 )
+  (byte) sin16s::isUpper#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
+  (boolean~) sin16s::$0 ← (dword) sin16s::x#3 >= (dword) PI_u4f28#0
+  (boolean~) sin16s::$1 ← ! (boolean~) sin16s::$0
+  if((boolean~) sin16s::$1) goto sin16s::@1
+  to:sin16s::@4
+sin16s::@1: scope:[sin16s]  from sin16s sin16s::@4
+  (byte) sin16s::isUpper#9 ← phi( sin16s/(byte) sin16s::isUpper#0 sin16s::@4/(byte) sin16s::isUpper#1 )
+  (dword) sin16s::x#4 ← phi( sin16s/(dword) sin16s::x#3 sin16s::@4/(dword) sin16s::x#1 )
+  (boolean~) sin16s::$3 ← (dword) sin16s::x#4 >= (dword) PI_HALF_u4f28#0
+  (boolean~) sin16s::$4 ← ! (boolean~) sin16s::$3
+  if((boolean~) sin16s::$4) goto sin16s::@2
+  to:sin16s::@5
+sin16s::@4: scope:[sin16s]  from sin16s
+  (dword) sin16s::x#5 ← phi( sin16s/(dword) sin16s::x#3 )
+  (dword~) sin16s::$2 ← (dword) sin16s::x#5 - (dword) PI_u4f28#0
+  (dword) sin16s::x#1 ← (dword~) sin16s::$2
+  (byte) sin16s::isUpper#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
+  to:sin16s::@1
+sin16s::@2: scope:[sin16s]  from sin16s::@1 sin16s::@5
+  (byte) sin16s::isUpper#8 ← phi( sin16s::@1/(byte) sin16s::isUpper#9 sin16s::@5/(byte) sin16s::isUpper#10 )
+  (dword) sin16s::x#6 ← phi( sin16s::@1/(dword) sin16s::x#4 sin16s::@5/(dword) sin16s::x#2 )
+  (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3
+  (word~) sin16s::$7 ← > (dword~) sin16s::$6
+  (word) sin16s::x1#0 ← (word~) sin16s::$7
+  (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0
+  (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0
+  (byte) mul_u16_sel::select#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
+  call mul_u16_sel param-assignment
+  (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#7
+  to:sin16s::@8
+sin16s::@8: scope:[sin16s]  from sin16s::@2
+  (byte) sin16s::isUpper#7 ← phi( sin16s::@2/(byte) sin16s::isUpper#8 )
+  (word) sin16s::x1#1 ← phi( sin16s::@2/(word) sin16s::x1#0 )
+  (word) mul_u16_sel::return#8 ← phi( sin16s::@2/(word) mul_u16_sel::return#0 )
+  (word~) sin16s::$8 ← (word) mul_u16_sel::return#8
+  (word) sin16s::x2#0 ← (word~) sin16s::$8
+  (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0
+  (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#1
+  (byte) mul_u16_sel::select#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
+  call mul_u16_sel param-assignment
+  (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#7
+  to:sin16s::@9
+sin16s::@9: scope:[sin16s]  from sin16s::@8
+  (byte) sin16s::isUpper#6 ← phi( sin16s::@8/(byte) sin16s::isUpper#7 )
+  (word) sin16s::x1#4 ← phi( sin16s::@8/(word) sin16s::x1#1 )
+  (word) mul_u16_sel::return#9 ← phi( sin16s::@8/(word) mul_u16_sel::return#1 )
+  (word~) sin16s::$9 ← (word) mul_u16_sel::return#9
+  (word) sin16s::x3#0 ← (word~) sin16s::$9
+  (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6
+  (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0
+  (word) mul_u16_sel::v2#2 ← (word/signed word/dword/signed dword~) sin16s::$10
+  (byte) mul_u16_sel::select#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1
+  call mul_u16_sel param-assignment
+  (word) mul_u16_sel::return#2 ← (word) mul_u16_sel::return#7
+  to:sin16s::@10
+sin16s::@10: scope:[sin16s]  from sin16s::@9
+  (byte) sin16s::isUpper#5 ← phi( sin16s::@9/(byte) sin16s::isUpper#6 )
+  (word) sin16s::x3#1 ← phi( sin16s::@9/(word) sin16s::x3#0 )
+  (word) sin16s::x1#2 ← phi( sin16s::@9/(word) sin16s::x1#4 )
+  (word) mul_u16_sel::return#10 ← phi( sin16s::@9/(word) mul_u16_sel::return#2 )
+  (word~) sin16s::$11 ← (word) mul_u16_sel::return#10
+  (word) sin16s::x3_6#0 ← (word~) sin16s::$11
+  (word~) sin16s::$12 ← (word) sin16s::x1#2 - (word) sin16s::x3_6#0
+  (word) sin16s::usinx#0 ← (word~) sin16s::$12
+  (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#1
+  (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#2
+  (byte) mul_u16_sel::select#3 ← (byte/signed byte/word/signed word/dword/signed dword) 0
+  call mul_u16_sel param-assignment
+  (word) mul_u16_sel::return#3 ← (word) mul_u16_sel::return#7
+  to:sin16s::@11
+sin16s::@11: scope:[sin16s]  from sin16s::@10
+  (byte) sin16s::isUpper#4 ← phi( sin16s::@10/(byte) sin16s::isUpper#5 )
+  (word) sin16s::usinx#5 ← phi( sin16s::@10/(word) sin16s::usinx#0 )
+  (word) sin16s::x1#3 ← phi( sin16s::@10/(word) sin16s::x1#2 )
+  (word) mul_u16_sel::return#11 ← phi( sin16s::@10/(word) mul_u16_sel::return#3 )
+  (word~) sin16s::$13 ← (word) mul_u16_sel::return#11
+  (word) sin16s::x4#0 ← (word~) sin16s::$13
+  (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0
+  (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#3
+  (byte) mul_u16_sel::select#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0
+  call mul_u16_sel param-assignment
+  (word) mul_u16_sel::return#4 ← (word) mul_u16_sel::return#7
+  to:sin16s::@12
+sin16s::@12: scope:[sin16s]  from sin16s::@11
+  (byte) sin16s::isUpper#3 ← phi( sin16s::@11/(byte) sin16s::isUpper#4 )
+  (word) sin16s::usinx#4 ← phi( sin16s::@11/(word) sin16s::usinx#5 )
+  (word) mul_u16_sel::return#12 ← phi( sin16s::@11/(word) mul_u16_sel::return#4 )
+  (word~) sin16s::$14 ← (word) mul_u16_sel::return#12
+  (word) sin16s::x5#0 ← (word~) sin16s::$14
+  (word/signed word/dword/signed dword~) sin16s::$15 ← (dword/signed dword) 65536 / (byte/word/signed word/dword/signed dword) 128
+  (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0
+  (word) mul_u16_sel::v2#5 ← (word/signed word/dword/signed dword~) sin16s::$15
+  (byte) mul_u16_sel::select#5 ← (byte/signed byte/word/signed word/dword/signed dword) 3
+  call mul_u16_sel param-assignment
+  (word) mul_u16_sel::return#5 ← (word) mul_u16_sel::return#7
+  to:sin16s::@13
+sin16s::@13: scope:[sin16s]  from sin16s::@12
+  (byte) sin16s::isUpper#2 ← phi( sin16s::@12/(byte) sin16s::isUpper#3 )
+  (word) sin16s::usinx#2 ← phi( sin16s::@12/(word) sin16s::usinx#4 )
+  (word) mul_u16_sel::return#13 ← phi( sin16s::@12/(word) mul_u16_sel::return#5 )
+  (word~) sin16s::$16 ← (word) mul_u16_sel::return#13
+  (word) sin16s::x5_128#0 ← (word~) sin16s::$16
+  (word~) sin16s::$17 ← (word) sin16s::usinx#2 + (word) sin16s::x5_128#0
+  (word) sin16s::usinx#1 ← (word~) sin16s::$17
+  (signed word~) sin16s::$18 ← ((signed word)) (word) sin16s::usinx#1
+  (signed word) sin16s::sinx#0 ← (signed word~) sin16s::$18
+  (boolean~) sin16s::$19 ← (byte) sin16s::isUpper#2 != (byte/signed byte/word/signed word/dword/signed dword) 0
+  (boolean~) sin16s::$20 ← ! (boolean~) sin16s::$19
+  if((boolean~) sin16s::$20) goto sin16s::@3
+  to:sin16s::@6
+sin16s::@5: scope:[sin16s]  from sin16s::@1
+  (byte) sin16s::isUpper#10 ← phi( sin16s::@1/(byte) sin16s::isUpper#9 )
+  (dword) sin16s::x#7 ← phi( sin16s::@1/(dword) sin16s::x#4 )
+  (dword~) sin16s::$5 ← (dword) PI_u4f28#0 - (dword) sin16s::x#7
+  (dword) sin16s::x#2 ← (dword~) sin16s::$5
+  to:sin16s::@2
+sin16s::@3: scope:[sin16s]  from sin16s::@13 sin16s::@6
+  (signed word) sin16s::sinx#2 ← phi( sin16s::@13/(signed word) sin16s::sinx#0 sin16s::@6/(signed word) sin16s::sinx#1 )
+  (signed word) sin16s::return#1 ← (signed word) sin16s::sinx#2
+  to:sin16s::@return
+sin16s::@6: scope:[sin16s]  from sin16s::@13
+  (word) sin16s::usinx#3 ← phi( sin16s::@13/(word) sin16s::usinx#1 )
+  (signed word~) sin16s::$21 ← ((signed word)) (word) sin16s::usinx#3
+  (signed word~) sin16s::$22 ← - (signed word~) sin16s::$21
+  (signed word) sin16s::sinx#1 ← (signed word~) sin16s::$22
+  to:sin16s::@3
+sin16s::@return: scope:[sin16s]  from sin16s::@3
+  (signed word) sin16s::return#4 ← phi( sin16s::@3/(signed word) sin16s::return#1 )
+  (signed word) sin16s::return#2 ← (signed word) sin16s::return#4
+  return 
+  to:@return
+mul_u16_sel: scope:[mul_u16_sel]  from sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@2 sin16s::@8 sin16s::@9
+  (byte) mul_u16_sel::select#7 ← phi( sin16s::@10/(byte) mul_u16_sel::select#3 sin16s::@11/(byte) mul_u16_sel::select#4 sin16s::@12/(byte) mul_u16_sel::select#5 sin16s::@2/(byte) mul_u16_sel::select#0 sin16s::@8/(byte) mul_u16_sel::select#1 sin16s::@9/(byte) mul_u16_sel::select#2 )
+  (word) mul_u16_sel::v2#6 ← phi( sin16s::@10/(word) mul_u16_sel::v2#3 sin16s::@11/(word) mul_u16_sel::v2#4 sin16s::@12/(word) mul_u16_sel::v2#5 sin16s::@2/(word) mul_u16_sel::v2#0 sin16s::@8/(word) mul_u16_sel::v2#1 sin16s::@9/(word) mul_u16_sel::v2#2 )
+  (word) mul_u16_sel::v1#6 ← phi( sin16s::@10/(word) mul_u16_sel::v1#3 sin16s::@11/(word) mul_u16_sel::v1#4 sin16s::@12/(word) mul_u16_sel::v1#5 sin16s::@2/(word) mul_u16_sel::v1#0 sin16s::@8/(word) mul_u16_sel::v1#1 sin16s::@9/(word) mul_u16_sel::v1#2 )
   (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6
   (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6
   call mul16u param-assignment
@@ -3081,28 +3056,28 @@ div32u16u::@return: scope:[div32u16u]  from div32u16u::@3
   (word) rem16u#9 ← (word) rem16u#18
   return 
   to:@return
-@25: scope:[]  from @21
+@26: scope:[]  from @21
   (byte*) char_cursor#50 ← phi( @21/(byte*) char_cursor#55 )
   (byte*) line_cursor#12 ← phi( @21/(byte*) line_cursor#15 )
-  (word) rem16u#25 ← phi( @21/(word) rem16u#29 )
+  (word) rem16u#25 ← phi( @21/(word) rem16u#28 )
   call main param-assignment
-  to:@26
-@26: scope:[]  from @25
-  (byte*) char_cursor#41 ← phi( @25/(byte*) char_cursor#20 )
-  (byte*) line_cursor#9 ← phi( @25/(byte*) line_cursor#4 )
-  (word) rem16u#19 ← phi( @25/(word) rem16u#4 )
+  to:@27
+@27: scope:[]  from @26
+  (byte*) char_cursor#41 ← phi( @26/(byte*) char_cursor#20 )
+  (byte*) line_cursor#9 ← phi( @26/(byte*) line_cursor#4 )
+  (word) rem16u#19 ← phi( @26/(word) rem16u#4 )
   (word) rem16u#10 ← (word) rem16u#19
   (byte*) line_cursor#5 ← (byte*) line_cursor#9
   (byte*) char_cursor#21 ← (byte*) char_cursor#41
   to:@end
-@end: scope:[]  from @26
+@end: scope:[]  from @27
 
 SYMBOL TABLE SSA
 (label) @10
 (label) @2
 (label) @21
-(label) @25
 (label) @26
+(label) @27
 (label) @begin
 (label) @end
 (dword) PI2_u4f28
@@ -3535,198 +3510,143 @@ SYMBOL TABLE SSA
 (word) rem16u#32
 (word) rem16u#33
 (word) rem16u#34
-(word) rem16u#35
-(word) rem16u#36
-(word) rem16u#37
-(word) rem16u#38
-(word) rem16u#39
 (word) rem16u#4
-(word) rem16u#40
-(word) rem16u#41
-(word) rem16u#42
-(word) rem16u#43
-(word) rem16u#44
-(word) rem16u#45
 (word) rem16u#5
 (word) rem16u#6
 (word) rem16u#7
 (word) rem16u#8
 (word) rem16u#9
+(signed word()) sin16s((dword) sin16s::x)
+(boolean~) sin16s::$0
+(boolean~) sin16s::$1
+(word/signed word/dword/signed dword~) sin16s::$10
+(word~) sin16s::$11
+(word~) sin16s::$12
+(word~) sin16s::$13
+(word~) sin16s::$14
+(word/signed word/dword/signed dword~) sin16s::$15
+(word~) sin16s::$16
+(word~) sin16s::$17
+(signed word~) sin16s::$18
+(boolean~) sin16s::$19
+(dword~) sin16s::$2
+(boolean~) sin16s::$20
+(signed word~) sin16s::$21
+(signed word~) sin16s::$22
+(boolean~) sin16s::$3
+(boolean~) sin16s::$4
+(dword~) sin16s::$5
+(dword~) sin16s::$6
+(word~) sin16s::$7
+(word~) sin16s::$8
+(word~) sin16s::$9
+(label) sin16s::@1
+(label) sin16s::@10
+(label) sin16s::@11
+(label) sin16s::@12
+(label) sin16s::@13
+(label) sin16s::@2
+(label) sin16s::@3
+(label) sin16s::@4
+(label) sin16s::@5
+(label) sin16s::@6
+(label) sin16s::@8
+(label) sin16s::@9
+(label) sin16s::@return
+(byte) sin16s::isUpper
+(byte) sin16s::isUpper#0
+(byte) sin16s::isUpper#1
+(byte) sin16s::isUpper#10
+(byte) sin16s::isUpper#2
+(byte) sin16s::isUpper#3
+(byte) sin16s::isUpper#4
+(byte) sin16s::isUpper#5
+(byte) sin16s::isUpper#6
+(byte) sin16s::isUpper#7
+(byte) sin16s::isUpper#8
+(byte) sin16s::isUpper#9
+(signed word) sin16s::return
+(signed word) sin16s::return#0
+(signed word) sin16s::return#1
+(signed word) sin16s::return#2
+(signed word) sin16s::return#3
+(signed word) sin16s::return#4
+(signed word) sin16s::sinx
+(signed word) sin16s::sinx#0
+(signed word) sin16s::sinx#1
+(signed word) sin16s::sinx#2
+(word) sin16s::usinx
+(word) sin16s::usinx#0
+(word) sin16s::usinx#1
+(word) sin16s::usinx#2
+(word) sin16s::usinx#3
+(word) sin16s::usinx#4
+(word) sin16s::usinx#5
+(dword) sin16s::x
+(dword) sin16s::x#0
+(dword) sin16s::x#1
+(dword) sin16s::x#2
+(dword) sin16s::x#3
+(dword) sin16s::x#4
+(dword) sin16s::x#5
+(dword) sin16s::x#6
+(dword) sin16s::x#7
+(word) sin16s::x1
+(word) sin16s::x1#0
+(word) sin16s::x1#1
+(word) sin16s::x1#2
+(word) sin16s::x1#3
+(word) sin16s::x1#4
+(word) sin16s::x2
+(word) sin16s::x2#0
+(word) sin16s::x3
+(word) sin16s::x3#0
+(word) sin16s::x3#1
+(word) sin16s::x3_6
+(word) sin16s::x3_6#0
+(word) sin16s::x4
+(word) sin16s::x4#0
+(word) sin16s::x5
+(word) sin16s::x5#0
+(word) sin16s::x5_128
+(word) sin16s::x5_128#0
 (void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength)
 (dword~) sin16s_gen::$0
-(boolean~) sin16s_gen::$1
-(word~) sin16s_gen::$10
-(word/signed word/dword/signed dword~) sin16s_gen::$11
-(word~) sin16s_gen::$12
-(word~) sin16s_gen::$13
-(word~) sin16s_gen::$14
-(word~) sin16s_gen::$15
-(word/signed word/dword/signed dword~) sin16s_gen::$16
-(word~) sin16s_gen::$17
-(word~) sin16s_gen::$18
-(signed word~) sin16s_gen::$19
-(boolean~) sin16s_gen::$2
-(boolean~) sin16s_gen::$20
-(boolean~) sin16s_gen::$21
-(signed word~) sin16s_gen::$22
-(signed word~) sin16s_gen::$23
-(signed word*~) sin16s_gen::$24
-(dword~) sin16s_gen::$25
-(boolean~) sin16s_gen::$26
+(signed word~) sin16s_gen::$1
+(signed word*~) sin16s_gen::$2
 (dword~) sin16s_gen::$3
 (boolean~) sin16s_gen::$4
-(boolean~) sin16s_gen::$5
-(dword~) sin16s_gen::$6
-(dword~) sin16s_gen::$7
-(word~) sin16s_gen::$8
-(word~) sin16s_gen::$9
 (label) sin16s_gen::@1
-(label) sin16s_gen::@10
-(label) sin16s_gen::@11
-(label) sin16s_gen::@12
-(label) sin16s_gen::@13
-(label) sin16s_gen::@14
-(label) sin16s_gen::@15
-(label) sin16s_gen::@2
 (label) sin16s_gen::@3
 (label) sin16s_gen::@4
-(label) sin16s_gen::@5
-(label) sin16s_gen::@6
-(label) sin16s_gen::@7
-(label) sin16s_gen::@9
 (label) sin16s_gen::@return
 (word) sin16s_gen::i
 (word) sin16s_gen::i#0
 (word) sin16s_gen::i#1
-(word) sin16s_gen::i#10
-(word) sin16s_gen::i#11
-(word) sin16s_gen::i#12
-(word) sin16s_gen::i#13
-(word) sin16s_gen::i#14
 (word) sin16s_gen::i#2
 (word) sin16s_gen::i#3
-(word) sin16s_gen::i#4
-(word) sin16s_gen::i#5
-(word) sin16s_gen::i#6
-(word) sin16s_gen::i#7
-(word) sin16s_gen::i#8
-(word) sin16s_gen::i#9
-(byte) sin16s_gen::isUpper
-(byte) sin16s_gen::isUpper#0
-(byte) sin16s_gen::isUpper#1
-(byte) sin16s_gen::isUpper#10
-(byte) sin16s_gen::isUpper#2
-(byte) sin16s_gen::isUpper#3
-(byte) sin16s_gen::isUpper#4
-(byte) sin16s_gen::isUpper#5
-(byte) sin16s_gen::isUpper#6
-(byte) sin16s_gen::isUpper#7
-(byte) sin16s_gen::isUpper#8
-(byte) sin16s_gen::isUpper#9
 (signed word*) sin16s_gen::sintab
 (signed word*) sin16s_gen::sintab#0
 (signed word*) sin16s_gen::sintab#1
-(signed word*) sin16s_gen::sintab#10
-(signed word*) sin16s_gen::sintab#11
-(signed word*) sin16s_gen::sintab#12
-(signed word*) sin16s_gen::sintab#13
-(signed word*) sin16s_gen::sintab#14
-(signed word*) sin16s_gen::sintab#15
-(signed word*) sin16s_gen::sintab#16
 (signed word*) sin16s_gen::sintab#2
 (signed word*) sin16s_gen::sintab#3
 (signed word*) sin16s_gen::sintab#4
 (signed word*) sin16s_gen::sintab#5
-(signed word*) sin16s_gen::sintab#6
-(signed word*) sin16s_gen::sintab#7
-(signed word*) sin16s_gen::sintab#8
-(signed word*) sin16s_gen::sintab#9
-(signed word) sin16s_gen::sinx
-(signed word) sin16s_gen::sinx#0
-(signed word) sin16s_gen::sinx#1
-(signed word) sin16s_gen::sinx#2
 (dword) sin16s_gen::step
 (dword) sin16s_gen::step#0
 (dword) sin16s_gen::step#1
-(dword) sin16s_gen::step#10
-(dword) sin16s_gen::step#11
-(dword) sin16s_gen::step#12
-(dword) sin16s_gen::step#13
 (dword) sin16s_gen::step#2
-(dword) sin16s_gen::step#3
-(dword) sin16s_gen::step#4
-(dword) sin16s_gen::step#5
-(dword) sin16s_gen::step#6
-(dword) sin16s_gen::step#7
-(dword) sin16s_gen::step#8
-(dword) sin16s_gen::step#9
-(word) sin16s_gen::usinx
-(word) sin16s_gen::usinx#0
-(word) sin16s_gen::usinx#1
-(word) sin16s_gen::usinx#2
-(word) sin16s_gen::usinx#3
-(word) sin16s_gen::usinx#4
-(word) sin16s_gen::usinx#5
 (word) sin16s_gen::wavelength
 (word) sin16s_gen::wavelength#0
 (word) sin16s_gen::wavelength#1
-(word) sin16s_gen::wavelength#10
-(word) sin16s_gen::wavelength#11
-(word) sin16s_gen::wavelength#12
-(word) sin16s_gen::wavelength#13
-(word) sin16s_gen::wavelength#14
-(word) sin16s_gen::wavelength#15
 (word) sin16s_gen::wavelength#2
 (word) sin16s_gen::wavelength#3
 (word) sin16s_gen::wavelength#4
-(word) sin16s_gen::wavelength#5
-(word) sin16s_gen::wavelength#6
-(word) sin16s_gen::wavelength#7
-(word) sin16s_gen::wavelength#8
-(word) sin16s_gen::wavelength#9
 (dword) sin16s_gen::x
 (dword) sin16s_gen::x#0
 (dword) sin16s_gen::x#1
-(dword) sin16s_gen::x#10
-(dword) sin16s_gen::x#11
-(dword) sin16s_gen::x#12
-(dword) sin16s_gen::x#13
-(dword) sin16s_gen::x#14
 (dword) sin16s_gen::x#2
 (dword) sin16s_gen::x#3
-(dword) sin16s_gen::x#4
-(dword) sin16s_gen::x#5
-(dword) sin16s_gen::x#6
-(dword) sin16s_gen::x#7
-(dword) sin16s_gen::x#8
-(dword) sin16s_gen::x#9
-(word) sin16s_gen::x1
-(word) sin16s_gen::x1#0
-(word) sin16s_gen::x1#1
-(word) sin16s_gen::x1#2
-(word) sin16s_gen::x1#3
-(word) sin16s_gen::x1#4
-(word) sin16s_gen::x2
-(word) sin16s_gen::x2#0
-(word) sin16s_gen::x3
-(word) sin16s_gen::x3#0
-(word) sin16s_gen::x3#1
-(word) sin16s_gen::x3_6
-(word) sin16s_gen::x3_6#0
-(word) sin16s_gen::x4
-(word) sin16s_gen::x4#0
-(word) sin16s_gen::x5
-(word) sin16s_gen::x5#0
-(word) sin16s_gen::x5_128
-(word) sin16s_gen::x5_128#0
-(dword) sin16s_gen::xp
-(dword) sin16s_gen::xp#0
-(dword) sin16s_gen::xp#1
-(dword) sin16s_gen::xp#2
-(dword) sin16s_gen::xp#3
-(dword) sin16s_gen::xp#4
-(dword) sin16s_gen::xp#5
-(dword) sin16s_gen::xp#6
 
 OPTIMIZING CONTROL FLOW GRAPH
 Inversing boolean not (boolean~) divr16u::$4 ← (byte~) divr16u::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0
@@ -3734,9 +3654,9 @@ Inversing boolean not (boolean~) divr16u::$9 ← (word) divr16u::rem#6 < (word)
 Inversing boolean not (boolean~) mul16u::$3 ← (byte~) mul16u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) mul16u::$2 ← (byte~) mul16u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0
 Inversing boolean not (boolean~) print_sword::$1 ← (signed word) print_sword::w#2 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) print_sword::$0 ← (signed word) print_sword::w#2 < (byte/signed byte/word/signed word/dword/signed dword) 0
 Inversing boolean not (boolean~) main::$3 ← (signed word) main::sw#0 < (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) main::$2 ← (signed word) main::sw#0 >= (byte/signed byte/word/signed word/dword/signed dword) 0
-Inversing boolean not (boolean~) sin16s_gen::$2 ← (dword) sin16s_gen::xp#0 < (dword) PI_u4f28#0 from (boolean~) sin16s_gen::$1 ← (dword) sin16s_gen::xp#0 >= (dword) PI_u4f28#0
-Inversing boolean not (boolean~) sin16s_gen::$5 ← (dword) sin16s_gen::xp#3 < (dword) PI_HALF_u4f28#0 from (boolean~) sin16s_gen::$4 ← (dword) sin16s_gen::xp#3 >= (dword) PI_HALF_u4f28#0
-Inversing boolean not (boolean~) sin16s_gen::$21 ← (byte) sin16s_gen::isUpper#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) sin16s_gen::$20 ← (byte) sin16s_gen::isUpper#2 != (byte/signed byte/word/signed word/dword/signed dword) 0
+Inversing boolean not (boolean~) sin16s::$1 ← (dword) sin16s::x#3 < (dword) PI_u4f28#0 from (boolean~) sin16s::$0 ← (dword) sin16s::x#3 >= (dword) PI_u4f28#0
+Inversing boolean not (boolean~) sin16s::$4 ← (dword) sin16s::x#4 < (dword) PI_HALF_u4f28#0 from (boolean~) sin16s::$3 ← (dword) sin16s::x#4 >= (dword) PI_HALF_u4f28#0
+Inversing boolean not (boolean~) sin16s::$20 ← (byte) sin16s::isUpper#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) sin16s::$19 ← (byte) sin16s::isUpper#2 != (byte/signed byte/word/signed word/dword/signed dword) 0
 Succesful SSA optimization Pass2UnaryNotSimplification
 Not aliassing across scopes: divr16u::rem#10 divr16u::rem#3
 Not aliassing across scopes: divr16u::dividend#5 divr16u::dividend#1
@@ -3776,37 +3696,41 @@ Not aliassing across scopes: char_cursor#38 char_cursor#2
 Not aliassing across scopes: char_cursor#39 char_cursor#2
 Not aliassing across scopes: sin16s_gen::wavelength#1 sin16s_gen::wavelength#0
 Not aliassing across scopes: rem16u#22 rem16u#20
-Not aliassing across scopes: sin16s_gen::sintab#16 sin16s_gen::sintab#0
+Not aliassing across scopes: sin16s_gen::sintab#5 sin16s_gen::sintab#0
 Not aliassing across scopes: div32u16u::dividend#0 PI2_u4f28#0
 Not aliassing across scopes: div32u16u::divisor#0 sin16s_gen::wavelength#1
 Not aliassing across scopes: div32u16u::return#0 div32u16u::return#2
 Not aliassing across scopes: rem16u#14 rem16u#9
 Not aliassing across scopes: sin16s_gen::$0 div32u16u::return#3
-Not aliassing across scopes: mul_u16_sel::v1#0 sin16s_gen::x1#0
-Not aliassing across scopes: mul_u16_sel::v2#0 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x#0 sin16s_gen::x#2
+Not aliassing across scopes: sin16s::return#0 sin16s::return#2
+Not aliassing across scopes: sin16s_gen::$1 sin16s::return#3
+Not aliassing across scopes: sin16s::x#3 sin16s::x#0
+Not aliassing across scopes: mul_u16_sel::v1#0 sin16s::x1#0
+Not aliassing across scopes: mul_u16_sel::v2#0 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#0 mul_u16_sel::return#7
-Not aliassing across scopes: sin16s_gen::$9 mul_u16_sel::return#8
-Not aliassing across scopes: mul_u16_sel::v1#1 sin16s_gen::x2#0
-Not aliassing across scopes: mul_u16_sel::v2#1 sin16s_gen::x1#1
+Not aliassing across scopes: sin16s::$8 mul_u16_sel::return#8
+Not aliassing across scopes: mul_u16_sel::v1#1 sin16s::x2#0
+Not aliassing across scopes: mul_u16_sel::v2#1 sin16s::x1#1
 Not aliassing across scopes: mul_u16_sel::return#1 mul_u16_sel::return#7
-Not aliassing across scopes: sin16s_gen::$10 mul_u16_sel::return#9
-Not aliassing across scopes: mul_u16_sel::v1#2 sin16s_gen::x3#0
+Not aliassing across scopes: sin16s::$9 mul_u16_sel::return#9
+Not aliassing across scopes: mul_u16_sel::v1#2 sin16s::x3#0
 Not aliassing across scopes: mul_u16_sel::return#2 mul_u16_sel::return#7
-Not aliassing across scopes: sin16s_gen::$12 mul_u16_sel::return#10
-Not aliassing across scopes: mul_u16_sel::v1#3 sin16s_gen::x3#1
-Not aliassing across scopes: mul_u16_sel::v2#3 sin16s_gen::x1#2
+Not aliassing across scopes: sin16s::$11 mul_u16_sel::return#10
+Not aliassing across scopes: mul_u16_sel::v1#3 sin16s::x3#1
+Not aliassing across scopes: mul_u16_sel::v2#3 sin16s::x1#2
 Not aliassing across scopes: mul_u16_sel::return#3 mul_u16_sel::return#7
-Not aliassing across scopes: sin16s_gen::$14 mul_u16_sel::return#11
-Not aliassing across scopes: mul_u16_sel::v1#4 sin16s_gen::x4#0
-Not aliassing across scopes: mul_u16_sel::v2#4 sin16s_gen::x1#3
+Not aliassing across scopes: sin16s::$13 mul_u16_sel::return#11
+Not aliassing across scopes: mul_u16_sel::v1#4 sin16s::x4#0
+Not aliassing across scopes: mul_u16_sel::v2#4 sin16s::x1#3
 Not aliassing across scopes: mul_u16_sel::return#4 mul_u16_sel::return#7
-Not aliassing across scopes: sin16s_gen::$15 mul_u16_sel::return#12
-Not aliassing across scopes: mul_u16_sel::v1#5 sin16s_gen::x5#0
+Not aliassing across scopes: sin16s::$14 mul_u16_sel::return#12
+Not aliassing across scopes: mul_u16_sel::v1#5 sin16s::x5#0
 Not aliassing across scopes: mul_u16_sel::return#5 mul_u16_sel::return#7
-Not aliassing across scopes: sin16s_gen::$17 mul_u16_sel::return#13
-Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#1
-Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#1
-Not aliassing across scopes: mul_u16_sel::select#7 mul_u16_sel::select#1
+Not aliassing across scopes: sin16s::$16 mul_u16_sel::return#13
+Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#3
+Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#3
+Not aliassing across scopes: mul_u16_sel::select#7 mul_u16_sel::select#3
 Not aliassing across scopes: mul16u::a#1 mul_u16_sel::v1#6
 Not aliassing across scopes: mul16u::b#0 mul_u16_sel::v2#6
 Not aliassing across scopes: mul16u::return#2 mul16u::return#1
@@ -3847,7 +3771,7 @@ Alias (dword) mul16u::res#2 = (dword) mul16u::res#5 (dword) mul16u::res#4 (dword
 Alias (word) mul16u::a#0 = (word~) mul16u::$5 
 Alias (dword) mul16u::mb#1 = (dword~) mul16u::$6 
 Alias (dword) mul16u::res#1 = (dword~) mul16u::$4 
-Alias (word) rem16u#0 = (word) rem16u#31 (word) rem16u#29 (word) rem16u#25 
+Alias (word) rem16u#0 = (word) rem16u#30 (word) rem16u#28 (word) rem16u#25 
 Alias (byte*) SCREEN#0 = (byte*) line_cursor#0 (byte*) char_cursor#0 (byte*) line_cursor#15 (byte*) char_cursor#55 (byte*) line_cursor#12 (byte*) char_cursor#50 
 Alias (byte*) print_str::str#3 = (byte*) print_str::str#4 
 Alias (byte*) char_cursor#2 = (byte*) char_cursor#22 (byte*) char_cursor#42 (byte*) char_cursor#23 
@@ -3870,13 +3794,13 @@ Alias (byte*) line_cursor#1 = (byte*) char_cursor#14 (byte*) line_cursor#6 (byte
 Alias (byte*) line_cursor#10 = (byte*) line_cursor#13 
 Alias (byte*) char_cursor#47 = (byte*) char_cursor#53 
 Alias (word) main::wavelength#0 = (word) main::wavelength#8 (word) main::wavelength#6 
-Alias (word) rem16u#12 = (word) rem16u#3 (word) rem16u#36 
+Alias (word) rem16u#12 = (word) rem16u#3 (word) rem16u#33 
 Alias (byte*) line_cursor#3 = (byte*) line_cursor#7 
 Alias (byte*) char_cursor#16 = (byte*) char_cursor#36 
 Alias (signed word[120]) main::sintab1#0 = (signed word*) main::st1#0 
 Alias (signed word*) main::st1#3 = (signed word*) main::st1#4 (signed word*) main::st1#5 
 Alias (word) main::wavelength#1 = (word) main::wavelength#2 (word) main::wavelength#3 
-Alias (word) rem16u#13 = (word) rem16u#26 (word) rem16u#30 (word) rem16u#21 (word) rem16u#4 
+Alias (word) rem16u#13 = (word) rem16u#26 (word) rem16u#29 (word) rem16u#21 (word) rem16u#4 
 Alias (byte*) line_cursor#11 = (byte*) line_cursor#14 (byte*) line_cursor#16 (byte*) line_cursor#8 (byte*) line_cursor#4 
 Alias (byte*) char_cursor#17 = (byte*) char_cursor#37 
 Alias (byte*) char_cursor#18 = (byte*) char_cursor#38 (byte*) char_cursor#40 (byte*) char_cursor#20 
@@ -3885,59 +3809,49 @@ Alias (byte*) char_cursor#49 = (byte*) char_cursor#54
 Alias (signed word) main::sw#0 = (signed word) main::sw#3 (signed word) main::sw#2 
 Alias (signed word*) main::st1#2 = (signed word*) main::st1#7 (signed word*) main::st1#6 
 Alias (word) main::wavelength#4 = (word) main::wavelength#7 (word) main::wavelength#5 
-Alias (word) rem16u#33 = (word) rem16u#37 (word) rem16u#34 
+Alias (word) rem16u#31 = (word) rem16u#34 (word) rem16u#32 
 Alias (byte*) line_cursor#17 = (byte*) line_cursor#19 (byte*) line_cursor#18 
 Alias (byte*) char_cursor#19 = (byte*) char_cursor#39 
 Alias (dword) div32u16u::return#0 = (dword) div32u16u::return#3 
-Alias (signed word*) sin16s_gen::sintab#15 = (signed word*) sin16s_gen::sintab#16 
-Alias (word) sin16s_gen::wavelength#1 = (word) sin16s_gen::wavelength#15 
+Alias (signed word*) sin16s_gen::sintab#4 = (signed word*) sin16s_gen::sintab#5 
+Alias (word) sin16s_gen::wavelength#1 = (word) sin16s_gen::wavelength#4 
 Alias (word) rem16u#14 = (word) rem16u#5 
 Alias (dword) sin16s_gen::step#0 = (dword~) sin16s_gen::$0 
-Alias (dword) sin16s_gen::xp#0 = (dword) sin16s_gen::x#2 (dword) sin16s_gen::xp#4 (dword) sin16s_gen::x#14 
-Alias (signed word*) sin16s_gen::sintab#13 = (signed word*) sin16s_gen::sintab#14 
-Alias (dword) sin16s_gen::step#12 = (dword) sin16s_gen::step#13 
-Alias (word) sin16s_gen::i#13 = (word) sin16s_gen::i#14 
-Alias (word) sin16s_gen::wavelength#13 = (word) sin16s_gen::wavelength#14 
-Alias (word) rem16u#44 = (word) rem16u#45 
-Alias (dword) sin16s_gen::xp#1 = (dword~) sin16s_gen::$3 
-Alias (word) sin16s_gen::x1#0 = (word~) sin16s_gen::$8 (word) sin16s_gen::x1#1 (word) sin16s_gen::x1#4 (word) sin16s_gen::x1#2 (word) sin16s_gen::x1#3 
+Alias (signed word) sin16s::return#0 = (signed word) sin16s::return#3 
+Alias (signed word*) sin16s_gen::sintab#2 = (signed word*) sin16s_gen::sintab#3 
+Alias (dword) sin16s_gen::x#2 = (dword) sin16s_gen::x#3 
+Alias (dword) sin16s_gen::step#1 = (dword) sin16s_gen::step#2 
+Alias (word) sin16s_gen::i#2 = (word) sin16s_gen::i#3 
+Alias (word) sin16s_gen::wavelength#2 = (word) sin16s_gen::wavelength#3 
+Alias (word) rem16u#15 = (word) rem16u#23 (word) rem16u#27 (word) rem16u#6 
+Alias (signed word*) sin16s_gen::sintab#1 = (signed word*~) sin16s_gen::$2 
+Alias (dword) sin16s_gen::x#1 = (dword~) sin16s_gen::$3 
+Alias (dword) sin16s::x#3 = (dword) sin16s::x#5 
+Alias (dword) sin16s::x#1 = (dword~) sin16s::$2 
+Alias (word) sin16s::x1#0 = (word~) sin16s::$7 (word) sin16s::x1#1 (word) sin16s::x1#4 (word) sin16s::x1#2 (word) sin16s::x1#3 
 Alias (word) mul_u16_sel::return#0 = (word) mul_u16_sel::return#8 
-Alias (byte) sin16s_gen::isUpper#2 = (byte) sin16s_gen::isUpper#7 (byte) sin16s_gen::isUpper#8 (byte) sin16s_gen::isUpper#6 (byte) sin16s_gen::isUpper#5 (byte) sin16s_gen::isUpper#4 (byte) sin16s_gen::isUpper#3 
-Alias (signed word*) sin16s_gen::sintab#10 = (signed word*) sin16s_gen::sintab#9 (signed word*) sin16s_gen::sintab#8 (signed word*) sin16s_gen::sintab#7 (signed word*) sin16s_gen::sintab#6 (signed word*) sin16s_gen::sintab#5 (signed word*) sin16s_gen::sintab#3 (signed word*) sin16s_gen::sintab#4 
-Alias (dword) sin16s_gen::x#10 = (dword) sin16s_gen::x#11 (dword) sin16s_gen::x#9 (dword) sin16s_gen::x#8 (dword) sin16s_gen::x#7 (dword) sin16s_gen::x#6 (dword) sin16s_gen::x#4 (dword) sin16s_gen::x#5 
-Alias (dword) sin16s_gen::step#2 = (dword) sin16s_gen::step#8 (dword) sin16s_gen::step#9 (dword) sin16s_gen::step#7 (dword) sin16s_gen::step#6 (dword) sin16s_gen::step#5 (dword) sin16s_gen::step#4 (dword) sin16s_gen::step#3 
-Alias (word) sin16s_gen::i#10 = (word) sin16s_gen::i#9 (word) sin16s_gen::i#8 (word) sin16s_gen::i#7 (word) sin16s_gen::i#6 (word) sin16s_gen::i#5 (word) sin16s_gen::i#3 (word) sin16s_gen::i#4 
-Alias (word) sin16s_gen::wavelength#10 = (word) sin16s_gen::wavelength#9 (word) sin16s_gen::wavelength#8 (word) sin16s_gen::wavelength#7 (word) sin16s_gen::wavelength#6 (word) sin16s_gen::wavelength#5 (word) sin16s_gen::wavelength#3 (word) sin16s_gen::wavelength#4 
-Alias (word) rem16u#27 = (word) rem16u#40 (word) rem16u#41 (word) rem16u#39 (word) rem16u#38 (word) rem16u#35 (word) rem16u#32 (word) rem16u#28 
-Alias (word) sin16s_gen::x2#0 = (word~) sin16s_gen::$9 
+Alias (byte) sin16s::isUpper#2 = (byte) sin16s::isUpper#7 (byte) sin16s::isUpper#8 (byte) sin16s::isUpper#6 (byte) sin16s::isUpper#5 (byte) sin16s::isUpper#4 (byte) sin16s::isUpper#3 
+Alias (word) sin16s::x2#0 = (word~) sin16s::$8 
 Alias (word) mul_u16_sel::return#1 = (word) mul_u16_sel::return#9 
-Alias (word) sin16s_gen::x3#0 = (word~) sin16s_gen::$10 (word) sin16s_gen::x3#1 
-Alias (word) mul_u16_sel::v2#2 = (word/signed word/dword/signed dword~) sin16s_gen::$11 
+Alias (word) sin16s::x3#0 = (word~) sin16s::$9 (word) sin16s::x3#1 
+Alias (word) mul_u16_sel::v2#2 = (word/signed word/dword/signed dword~) sin16s::$10 
 Alias (word) mul_u16_sel::return#10 = (word) mul_u16_sel::return#2 
-Alias (word) sin16s_gen::x3_6#0 = (word~) sin16s_gen::$12 
-Alias (word) sin16s_gen::usinx#0 = (word~) sin16s_gen::$13 (word) sin16s_gen::usinx#5 (word) sin16s_gen::usinx#4 (word) sin16s_gen::usinx#2 
+Alias (word) sin16s::x3_6#0 = (word~) sin16s::$11 
+Alias (word) sin16s::usinx#0 = (word~) sin16s::$12 (word) sin16s::usinx#5 (word) sin16s::usinx#4 (word) sin16s::usinx#2 
 Alias (word) mul_u16_sel::return#11 = (word) mul_u16_sel::return#3 
-Alias (word) sin16s_gen::x4#0 = (word~) sin16s_gen::$14 
+Alias (word) sin16s::x4#0 = (word~) sin16s::$13 
 Alias (word) mul_u16_sel::return#12 = (word) mul_u16_sel::return#4 
-Alias (word) sin16s_gen::x5#0 = (word~) sin16s_gen::$15 
-Alias (word) mul_u16_sel::v2#5 = (word/signed word/dword/signed dword~) sin16s_gen::$16 
+Alias (word) sin16s::x5#0 = (word~) sin16s::$14 
+Alias (word) mul_u16_sel::v2#5 = (word/signed word/dword/signed dword~) sin16s::$15 
 Alias (word) mul_u16_sel::return#13 = (word) mul_u16_sel::return#5 
-Alias (word) sin16s_gen::x5_128#0 = (word~) sin16s_gen::$17 
-Alias (word) sin16s_gen::usinx#1 = (word~) sin16s_gen::$18 (word) sin16s_gen::usinx#3 
-Alias (signed word) sin16s_gen::sinx#0 = (signed word~) sin16s_gen::$19 
-Alias (dword) sin16s_gen::xp#3 = (dword) sin16s_gen::xp#6 
-Alias (byte) sin16s_gen::isUpper#10 = (byte) sin16s_gen::isUpper#9 
-Alias (signed word*) sin16s_gen::sintab#11 = (signed word*) sin16s_gen::sintab#12 
-Alias (dword) sin16s_gen::x#12 = (dword) sin16s_gen::x#13 
-Alias (dword) sin16s_gen::step#10 = (dword) sin16s_gen::step#11 
-Alias (word) sin16s_gen::i#11 = (word) sin16s_gen::i#12 
-Alias (word) sin16s_gen::wavelength#11 = (word) sin16s_gen::wavelength#12 
-Alias (word) rem16u#42 = (word) rem16u#43 
-Alias (dword) sin16s_gen::xp#2 = (dword~) sin16s_gen::$6 
-Alias (signed word*) sin16s_gen::sintab#1 = (signed word*~) sin16s_gen::$24 
-Alias (dword) sin16s_gen::x#1 = (dword~) sin16s_gen::$25 
-Alias (signed word) sin16s_gen::sinx#1 = (signed word~) sin16s_gen::$23 
-Alias (word) rem16u#15 = (word) rem16u#23 (word) rem16u#6 
+Alias (word) sin16s::x5_128#0 = (word~) sin16s::$16 
+Alias (word) sin16s::usinx#1 = (word~) sin16s::$17 (word) sin16s::usinx#3 
+Alias (signed word) sin16s::sinx#0 = (signed word~) sin16s::$18 
+Alias (dword) sin16s::x#4 = (dword) sin16s::x#7 
+Alias (byte) sin16s::isUpper#10 = (byte) sin16s::isUpper#9 
+Alias (dword) sin16s::x#2 = (dword~) sin16s::$5 
+Alias (signed word) sin16s::return#1 = (signed word) sin16s::sinx#2 (signed word) sin16s::return#4 (signed word) sin16s::return#2 
+Alias (signed word) sin16s::sinx#1 = (signed word~) sin16s::$22 
 Alias (dword) mul16u::return#2 = (dword) mul16u::return#4 
 Alias (byte) mul_u16_sel::select#6 = (byte) mul_u16_sel::select#7 
 Alias (word) mul_u16_sel::return#14 = (word) mul_u16_sel::return#6 (word~) mul_u16_sel::$2 (word) mul_u16_sel::return#7 
@@ -3994,37 +3908,41 @@ Not aliassing across scopes: char_cursor#18 char_cursor#2
 Not aliassing across scopes: char_cursor#19 char_cursor#2
 Not aliassing across scopes: sin16s_gen::wavelength#1 sin16s_gen::wavelength#0
 Not aliassing across scopes: rem16u#22 rem16u#20
-Not aliassing across scopes: sin16s_gen::sintab#15 sin16s_gen::sintab#0
+Not aliassing across scopes: sin16s_gen::sintab#4 sin16s_gen::sintab#0
 Not aliassing across scopes: div32u16u::dividend#0 PI2_u4f28#0
 Not aliassing across scopes: div32u16u::divisor#0 sin16s_gen::wavelength#1
 Not aliassing across scopes: div32u16u::return#0 div32u16u::return#1
 Not aliassing across scopes: rem16u#14 rem16u#17
 Not aliassing across scopes: sin16s_gen::step#0 div32u16u::return#0
-Not aliassing across scopes: mul_u16_sel::v1#0 sin16s_gen::x1#0
-Not aliassing across scopes: mul_u16_sel::v2#0 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x#0 sin16s_gen::x#2
+Not aliassing across scopes: sin16s::return#0 sin16s::return#1
+Not aliassing across scopes: sin16s_gen::$1 sin16s::return#0
+Not aliassing across scopes: sin16s::x#3 sin16s::x#0
+Not aliassing across scopes: mul_u16_sel::v1#0 sin16s::x1#0
+Not aliassing across scopes: mul_u16_sel::v2#0 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#0 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x2#0 mul_u16_sel::return#0
-Not aliassing across scopes: mul_u16_sel::v1#1 sin16s_gen::x2#0
-Not aliassing across scopes: mul_u16_sel::v2#1 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x2#0 mul_u16_sel::return#0
+Not aliassing across scopes: mul_u16_sel::v1#1 sin16s::x2#0
+Not aliassing across scopes: mul_u16_sel::v2#1 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#1 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x3#0 mul_u16_sel::return#1
-Not aliassing across scopes: mul_u16_sel::v1#2 sin16s_gen::x3#0
+Not aliassing across scopes: sin16s::x3#0 mul_u16_sel::return#1
+Not aliassing across scopes: mul_u16_sel::v1#2 sin16s::x3#0
 Not aliassing across scopes: mul_u16_sel::return#10 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x3_6#0 mul_u16_sel::return#10
-Not aliassing across scopes: mul_u16_sel::v1#3 sin16s_gen::x3#0
-Not aliassing across scopes: mul_u16_sel::v2#3 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x3_6#0 mul_u16_sel::return#10
+Not aliassing across scopes: mul_u16_sel::v1#3 sin16s::x3#0
+Not aliassing across scopes: mul_u16_sel::v2#3 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#11 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x4#0 mul_u16_sel::return#11
-Not aliassing across scopes: mul_u16_sel::v1#4 sin16s_gen::x4#0
-Not aliassing across scopes: mul_u16_sel::v2#4 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x4#0 mul_u16_sel::return#11
+Not aliassing across scopes: mul_u16_sel::v1#4 sin16s::x4#0
+Not aliassing across scopes: mul_u16_sel::v2#4 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#12 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x5#0 mul_u16_sel::return#12
-Not aliassing across scopes: mul_u16_sel::v1#5 sin16s_gen::x5#0
+Not aliassing across scopes: sin16s::x5#0 mul_u16_sel::return#12
+Not aliassing across scopes: mul_u16_sel::v1#5 sin16s::x5#0
 Not aliassing across scopes: mul_u16_sel::return#13 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x5_128#0 mul_u16_sel::return#13
-Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#1
-Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#1
-Not aliassing across scopes: mul_u16_sel::select#6 mul_u16_sel::select#1
+Not aliassing across scopes: sin16s::x5_128#0 mul_u16_sel::return#13
+Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#3
+Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#3
+Not aliassing across scopes: mul_u16_sel::select#6 mul_u16_sel::select#3
 Not aliassing across scopes: mul16u::a#1 mul_u16_sel::v1#6
 Not aliassing across scopes: mul16u::b#0 mul_u16_sel::v2#6
 Not aliassing across scopes: mul16u::return#2 mul16u::res#2
@@ -4054,15 +3972,9 @@ Alias (dword) mul16u::mb#2 = (dword) mul16u::mb#3
 Alias (signed word) main::sw#0 = (signed word) main::sw#1 
 Alias (signed word*) main::st1#2 = (signed word*) main::st1#3 
 Alias (word) main::wavelength#1 = (word) main::wavelength#4 
-Alias (word) rem16u#13 = (word) rem16u#33 
+Alias (word) rem16u#13 = (word) rem16u#31 
 Alias (byte*) line_cursor#11 = (byte*) line_cursor#17 
-Alias (signed word*) sin16s_gen::sintab#10 = (signed word*) sin16s_gen::sintab#11 (signed word*) sin16s_gen::sintab#13 (signed word*) sin16s_gen::sintab#2 
-Alias (dword) sin16s_gen::x#10 = (dword) sin16s_gen::x#12 (dword) sin16s_gen::xp#0 (dword) sin16s_gen::x#3 
-Alias (dword) sin16s_gen::step#1 = (dword) sin16s_gen::step#10 (dword) sin16s_gen::step#12 (dword) sin16s_gen::step#2 
-Alias (word) sin16s_gen::i#10 = (word) sin16s_gen::i#11 (word) sin16s_gen::i#13 (word) sin16s_gen::i#2 
-Alias (word) sin16s_gen::wavelength#10 = (word) sin16s_gen::wavelength#11 (word) sin16s_gen::wavelength#13 (word) sin16s_gen::wavelength#2 
-Alias (word) rem16u#15 = (word) rem16u#42 (word) rem16u#44 (word) rem16u#27 
-Alias (byte) sin16s_gen::isUpper#10 = (byte) sin16s_gen::isUpper#2 
+Alias (byte) sin16s::isUpper#10 = (byte) sin16s::isUpper#2 
 Succesful SSA optimization Pass2AliasElimination
 Not aliassing across scopes: divr16u::rem#10 divr16u::rem#3
 Not aliassing across scopes: divr16u::dividend#5 divr16u::dividend#1
@@ -4102,40 +4014,41 @@ Not aliassing across scopes: char_cursor#18 char_cursor#2
 Not aliassing across scopes: char_cursor#19 char_cursor#2
 Not aliassing across scopes: sin16s_gen::wavelength#1 sin16s_gen::wavelength#0
 Not aliassing across scopes: rem16u#22 rem16u#20
-Not aliassing across scopes: sin16s_gen::sintab#15 sin16s_gen::sintab#0
+Not aliassing across scopes: sin16s_gen::sintab#4 sin16s_gen::sintab#0
 Not aliassing across scopes: div32u16u::dividend#0 PI2_u4f28#0
 Not aliassing across scopes: div32u16u::divisor#0 sin16s_gen::wavelength#1
 Not aliassing across scopes: div32u16u::return#0 div32u16u::return#1
 Not aliassing across scopes: rem16u#14 rem16u#17
 Not aliassing across scopes: sin16s_gen::step#0 div32u16u::return#0
-Not aliassing identity: sin16s_gen::step#1 sin16s_gen::step#1
-Not aliassing identity: sin16s_gen::wavelength#10 sin16s_gen::wavelength#10
-Not aliassing identity: rem16u#15 rem16u#15
-Not aliassing across scopes: mul_u16_sel::v1#0 sin16s_gen::x1#0
-Not aliassing across scopes: mul_u16_sel::v2#0 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x#0 sin16s_gen::x#2
+Not aliassing across scopes: sin16s::return#0 sin16s::return#1
+Not aliassing across scopes: sin16s_gen::$1 sin16s::return#0
+Not aliassing across scopes: sin16s::x#3 sin16s::x#0
+Not aliassing across scopes: mul_u16_sel::v1#0 sin16s::x1#0
+Not aliassing across scopes: mul_u16_sel::v2#0 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#0 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x2#0 mul_u16_sel::return#0
-Not aliassing across scopes: mul_u16_sel::v1#1 sin16s_gen::x2#0
-Not aliassing across scopes: mul_u16_sel::v2#1 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x2#0 mul_u16_sel::return#0
+Not aliassing across scopes: mul_u16_sel::v1#1 sin16s::x2#0
+Not aliassing across scopes: mul_u16_sel::v2#1 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#1 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x3#0 mul_u16_sel::return#1
-Not aliassing across scopes: mul_u16_sel::v1#2 sin16s_gen::x3#0
+Not aliassing across scopes: sin16s::x3#0 mul_u16_sel::return#1
+Not aliassing across scopes: mul_u16_sel::v1#2 sin16s::x3#0
 Not aliassing across scopes: mul_u16_sel::return#10 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x3_6#0 mul_u16_sel::return#10
-Not aliassing across scopes: mul_u16_sel::v1#3 sin16s_gen::x3#0
-Not aliassing across scopes: mul_u16_sel::v2#3 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x3_6#0 mul_u16_sel::return#10
+Not aliassing across scopes: mul_u16_sel::v1#3 sin16s::x3#0
+Not aliassing across scopes: mul_u16_sel::v2#3 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#11 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x4#0 mul_u16_sel::return#11
-Not aliassing across scopes: mul_u16_sel::v1#4 sin16s_gen::x4#0
-Not aliassing across scopes: mul_u16_sel::v2#4 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x4#0 mul_u16_sel::return#11
+Not aliassing across scopes: mul_u16_sel::v1#4 sin16s::x4#0
+Not aliassing across scopes: mul_u16_sel::v2#4 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#12 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x5#0 mul_u16_sel::return#12
-Not aliassing across scopes: mul_u16_sel::v1#5 sin16s_gen::x5#0
+Not aliassing across scopes: sin16s::x5#0 mul_u16_sel::return#12
+Not aliassing across scopes: mul_u16_sel::v1#5 sin16s::x5#0
 Not aliassing across scopes: mul_u16_sel::return#13 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x5_128#0 mul_u16_sel::return#13
-Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#1
-Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#1
-Not aliassing across scopes: mul_u16_sel::select#6 mul_u16_sel::select#1
+Not aliassing across scopes: sin16s::x5_128#0 mul_u16_sel::return#13
+Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#3
+Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#3
+Not aliassing across scopes: mul_u16_sel::select#6 mul_u16_sel::select#3
 Not aliassing across scopes: mul16u::a#1 mul_u16_sel::v1#6
 Not aliassing across scopes: mul16u::b#0 mul_u16_sel::v2#6
 Not aliassing across scopes: mul16u::return#2 mul16u::res#2
@@ -4160,7 +4073,7 @@ Self Phi Eliminated (word) main::wavelength#1
 Self Phi Eliminated (word) rem16u#13
 Self Phi Eliminated (byte*) line_cursor#11
 Self Phi Eliminated (dword) sin16s_gen::step#1
-Self Phi Eliminated (word) sin16s_gen::wavelength#10
+Self Phi Eliminated (word) sin16s_gen::wavelength#2
 Self Phi Eliminated (word) rem16u#15
 Succesful SSA optimization Pass2SelfPhiElimination
 Redundant Phi (word) divr16u::divisor#2 (word) divr16u::divisor#6
@@ -4190,11 +4103,12 @@ Redundant Phi (byte*) char_cursor#18 (byte*) char_cursor#2
 Redundant Phi (byte*) char_cursor#19 (byte*) char_cursor#2
 Redundant Phi (word) sin16s_gen::wavelength#1 (word) sin16s_gen::wavelength#0
 Redundant Phi (word) rem16u#22 (word) rem16u#20
-Redundant Phi (signed word*) sin16s_gen::sintab#15 (signed word*) sin16s_gen::sintab#0
+Redundant Phi (signed word*) sin16s_gen::sintab#4 (signed word*) sin16s_gen::sintab#0
 Redundant Phi (word) rem16u#14 (word) rem16u#17
 Redundant Phi (dword) sin16s_gen::step#1 (dword) sin16s_gen::step#0
-Redundant Phi (word) sin16s_gen::wavelength#10 (word) sin16s_gen::wavelength#1
+Redundant Phi (word) sin16s_gen::wavelength#2 (word) sin16s_gen::wavelength#1
 Redundant Phi (word) rem16u#15 (word) rem16u#14
+Redundant Phi (dword) sin16s::x#3 (dword) sin16s::x#0
 Redundant Phi (dword) div32u16u::dividend#1 (dword) div32u16u::dividend#0
 Redundant Phi (word) div32u16u::divisor#1 (word) div32u16u::divisor#0
 Redundant Phi (word) rem16u#24 (word) rem16u#22
@@ -4214,10 +4128,10 @@ Simple Condition (boolean~) print_sword::$1 if((signed word) print_sword::w#1>=(
 Simple Condition (boolean~) print_cls::$1 if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1
 Simple Condition (boolean~) main::$3 if((signed word) main::sw#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2
 Simple Condition (boolean~) main::$10 if((signed word*) main::st1#1<(signed word*~) main::$9) goto main::@1
-Simple Condition (boolean~) sin16s_gen::$2 if((dword) sin16s_gen::x#10<(dword) PI_u4f28#0) goto sin16s_gen::@2
-Simple Condition (boolean~) sin16s_gen::$5 if((dword) sin16s_gen::xp#3<(dword) PI_HALF_u4f28#0) goto sin16s_gen::@3
-Simple Condition (boolean~) sin16s_gen::$21 if((byte) sin16s_gen::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s_gen::@4
-Simple Condition (boolean~) sin16s_gen::$26 if((word) sin16s_gen::i#1<(word) sin16s_gen::wavelength#0) goto sin16s_gen::@1
+Simple Condition (boolean~) sin16s_gen::$4 if((word) sin16s_gen::i#1<(word) sin16s_gen::wavelength#0) goto sin16s_gen::@1
+Simple Condition (boolean~) sin16s::$1 if((dword) sin16s::x#0<(dword) PI_u4f28#0) goto sin16s::@1
+Simple Condition (boolean~) sin16s::$4 if((dword) sin16s::x#4<(dword) PI_HALF_u4f28#0) goto sin16s::@2
+Simple Condition (boolean~) sin16s::$20 if((byte) sin16s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@3
 Succesful SSA optimization Pass2ConditionalJumpSimplification
 Constant (const word) rem16u#0 = 0
 Constant (const word) divr16u::quotient#0 = 0
@@ -4235,8 +4149,8 @@ Constant (const dword) PI_u4f28#0 = 843314857
 Constant (const dword) PI_HALF_u4f28#0 = 421657428
 Constant (const dword) sin16s_gen::x#0 = 0
 Constant (const word) sin16s_gen::i#0 = 0
-Constant (const byte) sin16s_gen::isUpper#0 = 0
-Constant (const byte) sin16s_gen::isUpper#1 = 1
+Constant (const byte) sin16s::isUpper#0 = 0
+Constant (const byte) sin16s::isUpper#1 = 1
 Constant (const byte) mul_u16_sel::select#0 = 0
 Constant (const byte) mul_u16_sel::select#1 = 1
 Constant (const word) mul_u16_sel::v2#2 = 65536/6
@@ -4269,8 +4183,8 @@ Succesful SSA optimization Pass2FixInlineConstructors
 Eliminating unused constant (const word) rem16u#0
 Succesful SSA optimization PassNEliminateUnusedVars
 Eliminating Noop Cast (word) print_word::w#0 ← ((word)) (signed word) print_sword::w#3
-Eliminating Noop Cast (signed word) sin16s_gen::sinx#0 ← ((signed word)) (word) sin16s_gen::usinx#1
-Eliminating Noop Cast (signed word~) sin16s_gen::$22 ← ((signed word)) (word) sin16s_gen::usinx#1
+Eliminating Noop Cast (signed word) sin16s::sinx#0 ← ((signed word)) (word) sin16s::usinx#1
+Eliminating Noop Cast (signed word~) sin16s::$21 ← ((signed word)) (word) sin16s::usinx#1
 Succesful SSA optimization Pass2NopCastElimination
 Culled Empty Block (label) @2
 Culled Empty Block (label) mul16u::@3
@@ -4282,7 +4196,7 @@ Culled Empty Block (label) print_cls::@2
 Culled Empty Block (label) main::@6
 Culled Empty Block (label) main::@9
 Culled Empty Block (label) @21
-Culled Empty Block (label) @26
+Culled Empty Block (label) @27
 Succesful SSA optimization Pass2CullEmptyBlocks
 Not aliassing across scopes: rem16u#1 divr16u::rem#11
 Not aliassing across scopes: mul16u::a#2 mul16u::a#1
@@ -4296,30 +4210,34 @@ Not aliassing across scopes: char_cursor#33 char_cursor#46
 Not aliassing across scopes: print_sword::w#1 main::sw#0
 Not aliassing across scopes: div32u16u::return#0 div32u16u::return#1
 Not aliassing across scopes: sin16s_gen::step#0 div32u16u::return#0
-Not aliassing across scopes: mul_u16_sel::v1#0 sin16s_gen::x1#0
-Not aliassing across scopes: mul_u16_sel::v2#0 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x#0 sin16s_gen::x#2
+Not aliassing across scopes: sin16s::return#0 sin16s::return#1
+Not aliassing across scopes: sin16s_gen::$1 sin16s::return#0
+Not aliassing across scopes: sin16s::x#4 sin16s::x#0
+Not aliassing across scopes: mul_u16_sel::v1#0 sin16s::x1#0
+Not aliassing across scopes: mul_u16_sel::v2#0 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#0 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x2#0 mul_u16_sel::return#0
-Not aliassing across scopes: mul_u16_sel::v1#1 sin16s_gen::x2#0
-Not aliassing across scopes: mul_u16_sel::v2#1 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x2#0 mul_u16_sel::return#0
+Not aliassing across scopes: mul_u16_sel::v1#1 sin16s::x2#0
+Not aliassing across scopes: mul_u16_sel::v2#1 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#1 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x3#0 mul_u16_sel::return#1
-Not aliassing across scopes: mul_u16_sel::v1#2 sin16s_gen::x3#0
+Not aliassing across scopes: sin16s::x3#0 mul_u16_sel::return#1
+Not aliassing across scopes: mul_u16_sel::v1#2 sin16s::x3#0
 Not aliassing across scopes: mul_u16_sel::return#10 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x3_6#0 mul_u16_sel::return#10
-Not aliassing across scopes: mul_u16_sel::v1#3 sin16s_gen::x3#0
-Not aliassing across scopes: mul_u16_sel::v2#3 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x3_6#0 mul_u16_sel::return#10
+Not aliassing across scopes: mul_u16_sel::v1#3 sin16s::x3#0
+Not aliassing across scopes: mul_u16_sel::v2#3 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#11 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x4#0 mul_u16_sel::return#11
-Not aliassing across scopes: mul_u16_sel::v1#4 sin16s_gen::x4#0
-Not aliassing across scopes: mul_u16_sel::v2#4 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x4#0 mul_u16_sel::return#11
+Not aliassing across scopes: mul_u16_sel::v1#4 sin16s::x4#0
+Not aliassing across scopes: mul_u16_sel::v2#4 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#12 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x5#0 mul_u16_sel::return#12
-Not aliassing across scopes: mul_u16_sel::v1#5 sin16s_gen::x5#0
+Not aliassing across scopes: sin16s::x5#0 mul_u16_sel::return#12
+Not aliassing across scopes: mul_u16_sel::v1#5 sin16s::x5#0
 Not aliassing across scopes: mul_u16_sel::return#13 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x5_128#0 mul_u16_sel::return#13
-Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#1
-Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#1
+Not aliassing across scopes: sin16s::x5_128#0 mul_u16_sel::return#13
+Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#3
+Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#3
 Not aliassing across scopes: mul16u::a#1 mul_u16_sel::v1#6
 Not aliassing across scopes: mul16u::b#0 mul_u16_sel::v2#6
 Not aliassing across scopes: mul16u::return#2 mul16u::res#2
@@ -4343,30 +4261,34 @@ Not aliassing across scopes: char_cursor#33 char_cursor#46
 Not aliassing across scopes: print_sword::w#1 main::sw#0
 Not aliassing across scopes: div32u16u::return#0 div32u16u::return#1
 Not aliassing across scopes: sin16s_gen::step#0 div32u16u::return#0
-Not aliassing across scopes: mul_u16_sel::v1#0 sin16s_gen::x1#0
-Not aliassing across scopes: mul_u16_sel::v2#0 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x#0 sin16s_gen::x#2
+Not aliassing across scopes: sin16s::return#0 sin16s::return#1
+Not aliassing across scopes: sin16s_gen::$1 sin16s::return#0
+Not aliassing across scopes: sin16s::x#4 sin16s::x#0
+Not aliassing across scopes: mul_u16_sel::v1#0 sin16s::x1#0
+Not aliassing across scopes: mul_u16_sel::v2#0 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#0 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x2#0 mul_u16_sel::return#0
-Not aliassing across scopes: mul_u16_sel::v1#1 sin16s_gen::x2#0
-Not aliassing across scopes: mul_u16_sel::v2#1 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x2#0 mul_u16_sel::return#0
+Not aliassing across scopes: mul_u16_sel::v1#1 sin16s::x2#0
+Not aliassing across scopes: mul_u16_sel::v2#1 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#1 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x3#0 mul_u16_sel::return#1
-Not aliassing across scopes: mul_u16_sel::v1#2 sin16s_gen::x3#0
+Not aliassing across scopes: sin16s::x3#0 mul_u16_sel::return#1
+Not aliassing across scopes: mul_u16_sel::v1#2 sin16s::x3#0
 Not aliassing across scopes: mul_u16_sel::return#10 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x3_6#0 mul_u16_sel::return#10
-Not aliassing across scopes: mul_u16_sel::v1#3 sin16s_gen::x3#0
-Not aliassing across scopes: mul_u16_sel::v2#3 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x3_6#0 mul_u16_sel::return#10
+Not aliassing across scopes: mul_u16_sel::v1#3 sin16s::x3#0
+Not aliassing across scopes: mul_u16_sel::v2#3 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#11 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x4#0 mul_u16_sel::return#11
-Not aliassing across scopes: mul_u16_sel::v1#4 sin16s_gen::x4#0
-Not aliassing across scopes: mul_u16_sel::v2#4 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x4#0 mul_u16_sel::return#11
+Not aliassing across scopes: mul_u16_sel::v1#4 sin16s::x4#0
+Not aliassing across scopes: mul_u16_sel::v2#4 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#12 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x5#0 mul_u16_sel::return#12
-Not aliassing across scopes: mul_u16_sel::v1#5 sin16s_gen::x5#0
+Not aliassing across scopes: sin16s::x5#0 mul_u16_sel::return#12
+Not aliassing across scopes: mul_u16_sel::v1#5 sin16s::x5#0
 Not aliassing across scopes: mul_u16_sel::return#13 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x5_128#0 mul_u16_sel::return#13
-Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#1
-Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#1
+Not aliassing across scopes: sin16s::x5_128#0 mul_u16_sel::return#13
+Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#3
+Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#3
 Not aliassing across scopes: mul16u::a#1 mul_u16_sel::v1#6
 Not aliassing across scopes: mul16u::b#0 mul_u16_sel::v2#6
 Not aliassing across scopes: mul16u::return#2 mul16u::res#2
@@ -4389,30 +4311,34 @@ Not aliassing across scopes: char_cursor#33 char_cursor#46
 Not aliassing across scopes: print_sword::w#1 main::sw#0
 Not aliassing across scopes: div32u16u::return#0 div32u16u::return#1
 Not aliassing across scopes: sin16s_gen::step#0 div32u16u::return#0
-Not aliassing across scopes: mul_u16_sel::v1#0 sin16s_gen::x1#0
-Not aliassing across scopes: mul_u16_sel::v2#0 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x#0 sin16s_gen::x#2
+Not aliassing across scopes: sin16s::return#0 sin16s::return#1
+Not aliassing across scopes: sin16s_gen::$1 sin16s::return#0
+Not aliassing across scopes: sin16s::x#4 sin16s::x#0
+Not aliassing across scopes: mul_u16_sel::v1#0 sin16s::x1#0
+Not aliassing across scopes: mul_u16_sel::v2#0 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#0 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x2#0 mul_u16_sel::return#0
-Not aliassing across scopes: mul_u16_sel::v1#1 sin16s_gen::x2#0
-Not aliassing across scopes: mul_u16_sel::v2#1 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x2#0 mul_u16_sel::return#0
+Not aliassing across scopes: mul_u16_sel::v1#1 sin16s::x2#0
+Not aliassing across scopes: mul_u16_sel::v2#1 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#1 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x3#0 mul_u16_sel::return#1
-Not aliassing across scopes: mul_u16_sel::v1#2 sin16s_gen::x3#0
+Not aliassing across scopes: sin16s::x3#0 mul_u16_sel::return#1
+Not aliassing across scopes: mul_u16_sel::v1#2 sin16s::x3#0
 Not aliassing across scopes: mul_u16_sel::return#10 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x3_6#0 mul_u16_sel::return#10
-Not aliassing across scopes: mul_u16_sel::v1#3 sin16s_gen::x3#0
-Not aliassing across scopes: mul_u16_sel::v2#3 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x3_6#0 mul_u16_sel::return#10
+Not aliassing across scopes: mul_u16_sel::v1#3 sin16s::x3#0
+Not aliassing across scopes: mul_u16_sel::v2#3 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#11 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x4#0 mul_u16_sel::return#11
-Not aliassing across scopes: mul_u16_sel::v1#4 sin16s_gen::x4#0
-Not aliassing across scopes: mul_u16_sel::v2#4 sin16s_gen::x1#0
+Not aliassing across scopes: sin16s::x4#0 mul_u16_sel::return#11
+Not aliassing across scopes: mul_u16_sel::v1#4 sin16s::x4#0
+Not aliassing across scopes: mul_u16_sel::v2#4 sin16s::x1#0
 Not aliassing across scopes: mul_u16_sel::return#12 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x5#0 mul_u16_sel::return#12
-Not aliassing across scopes: mul_u16_sel::v1#5 sin16s_gen::x5#0
+Not aliassing across scopes: sin16s::x5#0 mul_u16_sel::return#12
+Not aliassing across scopes: mul_u16_sel::v1#5 sin16s::x5#0
 Not aliassing across scopes: mul_u16_sel::return#13 mul_u16_sel::return#14
-Not aliassing across scopes: sin16s_gen::x5_128#0 mul_u16_sel::return#13
-Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#1
-Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#1
+Not aliassing across scopes: sin16s::x5_128#0 mul_u16_sel::return#13
+Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#3
+Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#3
 Not aliassing across scopes: mul16u::a#1 mul_u16_sel::v1#6
 Not aliassing across scopes: mul16u::b#0 mul_u16_sel::v2#6
 Not aliassing across scopes: mul16u::return#2 mul16u::res#2
@@ -4465,12 +4391,12 @@ Inlining constant with var siblings (const dword) sin16s_gen::x#0
 Inlining constant with var siblings (const dword) sin16s_gen::x#0
 Inlining constant with var siblings (const word) sin16s_gen::i#0
 Inlining constant with var siblings (const word) sin16s_gen::i#0
-Inlining constant with var siblings (const byte) sin16s_gen::isUpper#0
-Inlining constant with different constant siblings (const byte) sin16s_gen::isUpper#0
-Inlining constant with var siblings (const byte) sin16s_gen::isUpper#1
-Inlining constant with different constant siblings (const byte) sin16s_gen::isUpper#1
 Inlining constant with var siblings (const signed word[120]) sin16s_gen::sintab#0
 Inlining constant with var siblings (const signed word[120]) sin16s_gen::sintab#0
+Inlining constant with var siblings (const byte) sin16s::isUpper#0
+Inlining constant with different constant siblings (const byte) sin16s::isUpper#0
+Inlining constant with var siblings (const byte) sin16s::isUpper#1
+Inlining constant with different constant siblings (const byte) sin16s::isUpper#1
 Inlining constant with var siblings (const byte) mul_u16_sel::select#0
 Inlining constant with different constant siblings (const byte) mul_u16_sel::select#0
 Inlining constant with different constant siblings (const byte) mul_u16_sel::select#0
@@ -4517,12 +4443,12 @@ Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed
 Constant inlined sin16s_gen::wavelength#0 = (const word) main::wavelength#0
 Constant inlined div32u16u::dividend#0 = (const dword) PI2_u4f28#0
 Constant inlined line_cursor#1 = (const byte*) SCREEN#0
+Constant inlined sin16s::isUpper#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
 Constant inlined divr16u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
 Constant inlined mul16u::res#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
+Constant inlined sin16s::isUpper#1 = (byte/signed byte/word/signed word/dword/signed dword) 1
 Constant inlined divr16u::divisor#1 = (const word) main::wavelength#0
 Constant inlined divr16u::divisor#0 = (const word) main::wavelength#0
-Constant inlined sin16s_gen::isUpper#1 = (byte/signed byte/word/signed word/dword/signed dword) 1
-Constant inlined sin16s_gen::isUpper#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
 Constant inlined sin16s_gen::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
 Constant inlined print_cls::sc#0 = (const byte*) SCREEN#0
 Constant inlined sin16s_gen::sintab#0 = (const signed word[120]) main::sintab1#0
@@ -4545,23 +4471,23 @@ Constant inlined mul_u16_sel::select#3 = (byte/signed byte/word/signed word/dwor
 Constant inlined main::$8 = (const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2
 Constant inlined mul_u16_sel::select#4 = (byte/signed byte/word/signed word/dword/signed dword) 0
 Succesful SSA optimization Pass2ConstantInlining
-Block Sequence Planned @begin @25 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@9 sin16s_gen::@1 sin16s_gen::@5 sin16s_gen::@2 sin16s_gen::@6 sin16s_gen::@3 sin16s_gen::@10 sin16s_gen::@11 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@7 sin16s_gen::@4 sin16s_gen::@return mul_u16_sel mul_u16_sel::@2 mul_u16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return 
+Block Sequence Planned @begin @26 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@13 sin16s::@6 sin16s::@3 sin16s::@return mul_u16_sel mul_u16_sel::@2 mul_u16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return 
 Added new block during phi lifting main::@10(between main::@8 and main::@1)
 Added new block during phi lifting main::@11(between main::@1 and main::@2)
 Added new block during phi lifting print_sword::@5(between print_sword and print_sword::@1)
 Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
-Added new block during phi lifting sin16s_gen::@16(between sin16s_gen::@4 and sin16s_gen::@1)
-Added new block during phi lifting sin16s_gen::@17(between sin16s_gen::@1 and sin16s_gen::@2)
-Fixing phi predecessor for sin16s_gen::isUpper#10 to new block ( sin16s_gen::@1 -> sin16s_gen::@17 ) during phi lifting.
-Added new block during phi lifting sin16s_gen::@18(between sin16s_gen::@2 and sin16s_gen::@3)
-Added new block during phi lifting sin16s_gen::@19(between sin16s_gen::@15 and sin16s_gen::@4)
+Added new block during phi lifting sin16s_gen::@5(between sin16s_gen::@4 and sin16s_gen::@1)
+Added new block during phi lifting sin16s::@14(between sin16s and sin16s::@1)
+Fixing phi predecessor for sin16s::isUpper#10 to new block ( sin16s -> sin16s::@14 ) during phi lifting.
+Added new block during phi lifting sin16s::@15(between sin16s::@1 and sin16s::@2)
+Added new block during phi lifting sin16s::@16(between sin16s::@13 and sin16s::@3)
 Added new block during phi lifting mul16u::@10(between mul16u::@2 and mul16u::@4)
 Added new block during phi lifting divr16u::@8(between divr16u::@3 and divr16u::@1)
 Added new block during phi lifting divr16u::@9(between divr16u::@1 and divr16u::@2)
 Added new block during phi lifting divr16u::@10(between divr16u::@2 and divr16u::@3)
-Block Sequence Planned @begin @25 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return main::@10 main::@11 print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_sword::@5 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return print_cls::@3 sin16s_gen sin16s_gen::@9 sin16s_gen::@1 sin16s_gen::@5 sin16s_gen::@2 sin16s_gen::@6 sin16s_gen::@3 sin16s_gen::@10 sin16s_gen::@11 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@7 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@16 sin16s_gen::@19 sin16s_gen::@18 sin16s_gen::@17 mul_u16_sel mul_u16_sel::@2 mul_u16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9 
+Block Sequence Planned @begin @26 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return main::@10 main::@11 print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_sword::@5 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return print_cls::@3 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@5 sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@13 sin16s::@6 sin16s::@3 sin16s::@return sin16s::@16 sin16s::@15 sin16s::@14 mul_u16_sel mul_u16_sel::@2 mul_u16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9 
 Adding NOP phi() at start of @begin
-Adding NOP phi() at start of @25
+Adding NOP phi() at start of @26
 Adding NOP phi() at start of @end
 Adding NOP phi() at start of main
 Adding NOP phi() at start of main::@5
@@ -4574,9 +4500,10 @@ Calls in [main] to sin16s_gen:5 print_cls:7 print_str:12 print_sword:16 print_st
 Calls in [print_sword] to print_char:38 print_word:43 
 Calls in [print_word] to print_byte:50 print_byte:54 
 Calls in [print_byte] to print_char:61 print_char:66 
-Calls in [sin16s_gen] to div32u16u:80 mul_u16_sel:98 mul_u16_sel:105 mul_u16_sel:110 mul_u16_sel:118 mul_u16_sel:125 mul_u16_sel:130 
-Calls in [mul_u16_sel] to mul16u:153 
-Calls in [div32u16u] to divr16u:177 divr16u:182 
+Calls in [sin16s_gen] to div32u16u:80 sin16s:85 
+Calls in [sin16s] to mul_u16_sel:111 mul_u16_sel:118 mul_u16_sel:123 mul_u16_sel:131 mul_u16_sel:138 mul_u16_sel:143 
+Calls in [mul_u16_sel] to mul16u:158 
+Calls in [div32u16u] to divr16u:182 divr16u:187 
 
 Propagating live ranges...
 Propagating live ranges...
@@ -4624,17 +4551,6 @@ Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
 Created 38 initial phi equivalence classes
 Coalesced [11] char_cursor#59 ← char_cursor#49
 Coalesced [13] char_cursor#58 ← char_cursor#2
@@ -4660,58 +4576,59 @@ Coalesced (already) [60] char_cursor#67 ← char_cursor#46
 Coalesced [64] print_char::ch#5 ← print_char::ch#2
 Coalesced (already) [65] char_cursor#68 ← char_cursor#12
 Coalesced [78] print_cls::sc#3 ← print_cls::sc#1
-Coalesced [86] sin16s_gen::xp#8 ← sin16s_gen::xp#1
-Coalesced [90] sin16s_gen::xp#10 ← sin16s_gen::xp#2
-Coalesced [96] mul_u16_sel::v1#12 ← mul_u16_sel::v1#0
-Coalesced [97] mul_u16_sel::v2#10 ← mul_u16_sel::v2#0
-Coalesced [103] mul_u16_sel::v1#7 ← mul_u16_sel::v1#1
-Coalesced [104] mul_u16_sel::v2#7 ← mul_u16_sel::v2#1
-Coalesced [109] mul_u16_sel::v1#8 ← mul_u16_sel::v1#2
-Coalesced [116] mul_u16_sel::v1#9 ← mul_u16_sel::v1#3
-Coalesced [117] mul_u16_sel::v2#8 ← mul_u16_sel::v2#3
-Coalesced [123] mul_u16_sel::v1#10 ← mul_u16_sel::v1#4
-Coalesced [124] mul_u16_sel::v2#9 ← mul_u16_sel::v2#4
-Coalesced [129] mul_u16_sel::v1#11 ← mul_u16_sel::v1#5
-Coalesced [136] sin16s_gen::sinx#4 ← sin16s_gen::sinx#1
-Coalesced [144] sin16s_gen::x#15 ← sin16s_gen::x#1
-Coalesced [145] sin16s_gen::sintab#17 ← sin16s_gen::sintab#1
-Coalesced [146] sin16s_gen::i#15 ← sin16s_gen::i#1
-Coalesced [148] sin16s_gen::xp#9 ← sin16s_gen::xp#3
-Not coalescing [149] sin16s_gen::xp#7 ← sin16s_gen::x#10
-Coalesced [160] mul16u::a#7 ← mul16u::a#1
-Coalesced [161] mul16u::mb#6 ← mul16u::mb#0
-Coalesced [168] mul16u::res#9 ← mul16u::res#1
-Coalesced [172] mul16u::a#8 ← mul16u::a#0
-Coalesced [173] mul16u::res#7 ← mul16u::res#6
-Coalesced [174] mul16u::mb#7 ← mul16u::mb#1
-Coalesced (already) [175] mul16u::res#8 ← mul16u::res#2
-Coalesced [181] divr16u::rem#12 ← divr16u::rem#4
-Coalesced [188] divr16u::rem#13 ← divr16u::rem#10
-Coalesced [189] divr16u::dividend#9 ← divr16u::dividend#5
-Coalesced [196] divr16u::rem#16 ← divr16u::rem#1
-Coalesced [203] divr16u::rem#18 ← divr16u::rem#2
-Coalesced [204] divr16u::return#8 ← divr16u::quotient#2
-Coalesced [210] divr16u::rem#14 ← divr16u::rem#11
-Coalesced [211] divr16u::dividend#10 ← divr16u::dividend#0
-Coalesced [212] divr16u::quotient#9 ← divr16u::return#0
-Coalesced [213] divr16u::i#7 ← divr16u::i#1
-Coalesced [214] divr16u::rem#17 ← divr16u::rem#6
-Coalesced [215] divr16u::return#7 ← divr16u::quotient#1
-Coalesced [216] divr16u::rem#15 ← divr16u::rem#0
+Coalesced [94] sin16s_gen::x#4 ← sin16s_gen::x#1
+Coalesced [95] sin16s_gen::sintab#6 ← sin16s_gen::sintab#1
+Coalesced [96] sin16s_gen::i#4 ← sin16s_gen::i#1
+Coalesced [99] sin16s::x#9 ← sin16s::x#1
+Coalesced [103] sin16s::x#11 ← sin16s::x#2
+Coalesced [109] mul_u16_sel::v1#10 ← mul_u16_sel::v1#0
+Coalesced [110] mul_u16_sel::v2#9 ← mul_u16_sel::v2#0
+Coalesced [116] mul_u16_sel::v1#11 ← mul_u16_sel::v1#1
+Coalesced [117] mul_u16_sel::v2#10 ← mul_u16_sel::v2#1
+Coalesced [122] mul_u16_sel::v1#12 ← mul_u16_sel::v1#2
+Coalesced [129] mul_u16_sel::v1#7 ← mul_u16_sel::v1#3
+Coalesced [130] mul_u16_sel::v2#7 ← mul_u16_sel::v2#3
+Coalesced [136] mul_u16_sel::v1#8 ← mul_u16_sel::v1#4
+Coalesced [137] mul_u16_sel::v2#8 ← mul_u16_sel::v2#4
+Coalesced [142] mul_u16_sel::v1#9 ← mul_u16_sel::v1#5
+Coalesced [149] sin16s::return#6 ← sin16s::sinx#1
+Coalesced [153] sin16s::x#10 ← sin16s::x#4
+Coalesced [154] sin16s::x#8 ← sin16s::x#0
+Coalesced [165] mul16u::a#7 ← mul16u::a#1
+Coalesced [166] mul16u::mb#6 ← mul16u::mb#0
+Coalesced [173] mul16u::res#9 ← mul16u::res#1
+Coalesced [177] mul16u::a#8 ← mul16u::a#0
+Coalesced [178] mul16u::res#7 ← mul16u::res#6
+Coalesced [179] mul16u::mb#7 ← mul16u::mb#1
+Coalesced (already) [180] mul16u::res#8 ← mul16u::res#2
+Coalesced [186] divr16u::rem#12 ← divr16u::rem#4
+Coalesced [193] divr16u::rem#13 ← divr16u::rem#10
+Coalesced [194] divr16u::dividend#9 ← divr16u::dividend#5
+Coalesced [201] divr16u::rem#16 ← divr16u::rem#1
+Coalesced [208] divr16u::rem#18 ← divr16u::rem#2
+Coalesced [209] divr16u::return#8 ← divr16u::quotient#2
+Coalesced [215] divr16u::rem#14 ← divr16u::rem#11
+Coalesced [216] divr16u::dividend#10 ← divr16u::dividend#0
+Coalesced [217] divr16u::quotient#9 ← divr16u::return#0
+Coalesced [218] divr16u::i#7 ← divr16u::i#1
+Coalesced [219] divr16u::rem#17 ← divr16u::rem#6
+Coalesced [220] divr16u::return#7 ← divr16u::quotient#1
+Coalesced [221] divr16u::rem#15 ← divr16u::rem#0
 Coalesced down to 24 phi equivalence classes
 Culled Empty Block (label) main::@10
 Culled Empty Block (label) main::@11
 Culled Empty Block (label) print_sword::@5
 Culled Empty Block (label) print_cls::@3
-Culled Empty Block (label) sin16s_gen::@16
-Culled Empty Block (label) sin16s_gen::@18
+Culled Empty Block (label) sin16s_gen::@5
+Culled Empty Block (label) sin16s::@15
+Culled Empty Block (label) sin16s::@14
 Culled Empty Block (label) mul16u::@10
 Culled Empty Block (label) divr16u::@8
 Culled Empty Block (label) divr16u::@10
 Culled Empty Block (label) divr16u::@9
-Block Sequence Planned @begin @25 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@9 sin16s_gen::@1 sin16s_gen::@5 sin16s_gen::@2 sin16s_gen::@6 sin16s_gen::@3 sin16s_gen::@10 sin16s_gen::@11 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@7 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@19 sin16s_gen::@17 mul_u16_sel mul_u16_sel::@2 mul_u16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return 
+Block Sequence Planned @begin @26 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@13 sin16s::@6 sin16s::@3 sin16s::@return sin16s::@16 mul_u16_sel mul_u16_sel::@2 mul_u16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return 
 Adding NOP phi() at start of @begin
-Adding NOP phi() at start of @25
+Adding NOP phi() at start of @26
 Adding NOP phi() at start of @end
 Adding NOP phi() at start of main
 Adding NOP phi() at start of main::@5
@@ -4757,26 +4674,18 @@ Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
-Propagating live ranges...
 
 FINAL CONTROL FLOW GRAPH
 @begin: scope:[]  from
   [0] phi() [ ] ( )
-  to:@25
-@25: scope:[]  from @begin
+  to:@26
+@26: scope:[]  from @begin
   [1] phi() [ ] ( )
   [2] call main param-assignment [ ] ( )
   to:@end
-@end: scope:[]  from @25
+@end: scope:[]  from @26
   [3] phi() [ ] ( )
-main: scope:[main]  from @25
+main: scope:[main]  from @26
   [4] phi() [ ] ( main:2 [ ] )
   [5] call sin16s_gen param-assignment [ ] ( main:2 [ ] )
   to:main::@5
@@ -4896,266 +4805,276 @@ sin16s_gen: scope:[sin16s_gen]  from main
   [58] phi() [ ] ( main:2::sin16s_gen:5 [ ] )
   [59] call div32u16u param-assignment [ div32u16u::return#1 ] ( main:2::sin16s_gen:5 [ div32u16u::return#1 ] )
   [60] (dword) div32u16u::return#0 ← (dword) div32u16u::return#1 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] )
-  to:sin16s_gen::@9
-sin16s_gen::@9: scope:[sin16s_gen]  from sin16s_gen
+  to:sin16s_gen::@3
+sin16s_gen::@3: scope:[sin16s_gen]  from sin16s_gen
   [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#0 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] )
   to:sin16s_gen::@1
-sin16s_gen::@1: scope:[sin16s_gen]  from sin16s_gen::@4 sin16s_gen::@9
-  [62] (word) sin16s_gen::i#10 ← phi( sin16s_gen::@4/(word) sin16s_gen::i#1 sin16s_gen::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] )
-  [62] (signed word*) sin16s_gen::sintab#10 ← phi( sin16s_gen::@4/(signed word*) sin16s_gen::sintab#1 sin16s_gen::@9/(const signed word[120]) main::sintab1#0 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] )
-  [62] (dword) sin16s_gen::x#10 ← phi( sin16s_gen::@4/(dword) sin16s_gen::x#1 sin16s_gen::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] )
-  [63] if((dword) sin16s_gen::x#10<(const dword) PI_u4f28#0) goto sin16s_gen::@17 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] )
-  to:sin16s_gen::@5
-sin16s_gen::@5: scope:[sin16s_gen]  from sin16s_gen::@1
-  [64] (dword) sin16s_gen::xp#1 ← (dword) sin16s_gen::x#10 - (const dword) PI_u4f28#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] )
-  to:sin16s_gen::@2
-sin16s_gen::@2: scope:[sin16s_gen]  from sin16s_gen::@17 sin16s_gen::@5
-  [65] (byte) sin16s_gen::isUpper#10 ← phi( sin16s_gen::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@5/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] )
-  [65] (dword) sin16s_gen::xp#3 ← phi( sin16s_gen::@17/(dword~) sin16s_gen::xp#7 sin16s_gen::@5/(dword) sin16s_gen::xp#1 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] )
-  [66] if((dword) sin16s_gen::xp#3<(const dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] )
-  to:sin16s_gen::@6
-sin16s_gen::@6: scope:[sin16s_gen]  from sin16s_gen::@2
-  [67] (dword) sin16s_gen::xp#2 ← (const dword) PI_u4f28#0 - (dword) sin16s_gen::xp#3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] )
-  to:sin16s_gen::@3
-sin16s_gen::@3: scope:[sin16s_gen]  from sin16s_gen::@2 sin16s_gen::@6
-  [68] (dword) sin16s_gen::xp#5 ← phi( sin16s_gen::@2/(dword) sin16s_gen::xp#3 sin16s_gen::@6/(dword) sin16s_gen::xp#2 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#5 ] )
-  [69] (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] )
-  [70] (word) sin16s_gen::x1#0 ← > (dword~) sin16s_gen::$7 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] )
-  [71] (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] )
-  [72] (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] )
-  [73] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] )
-  [74] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] )
-  to:sin16s_gen::@10
-sin16s_gen::@10: scope:[sin16s_gen]  from sin16s_gen::@3
-  [75] (word) sin16s_gen::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] )
-  [76] (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] )
-  [77] (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] )
-  [78] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] )
-  [79] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] )
-  to:sin16s_gen::@11
-sin16s_gen::@11: scope:[sin16s_gen]  from sin16s_gen::@10
-  [80] (word) sin16s_gen::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] )
-  [81] (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] )
-  [82] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] )
-  [83] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] )
-  to:sin16s_gen::@12
-sin16s_gen::@12: scope:[sin16s_gen]  from sin16s_gen::@11
-  [84] (word) sin16s_gen::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] )
-  [85] (word) sin16s_gen::usinx#0 ← (word) sin16s_gen::x1#0 - (word) sin16s_gen::x3_6#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] )
-  [86] (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] )
-  [87] (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] )
-  [88] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  [89] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] )
-  to:sin16s_gen::@13
-sin16s_gen::@13: scope:[sin16s_gen]  from sin16s_gen::@12
-  [90] (word) sin16s_gen::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] )
-  [91] (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] )
-  [92] (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] )
-  [93] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  [94] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] )
-  to:sin16s_gen::@14
-sin16s_gen::@14: scope:[sin16s_gen]  from sin16s_gen::@13
-  [95] (word) sin16s_gen::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] )
-  [96] (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] )
-  [97] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  [98] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] )
-  to:sin16s_gen::@15
-sin16s_gen::@15: scope:[sin16s_gen]  from sin16s_gen::@14
-  [99] (word) sin16s_gen::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] )
-  [100] (word) sin16s_gen::usinx#1 ← (word) sin16s_gen::usinx#0 + (word) sin16s_gen::x5_128#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] )
-  [101] if((byte) sin16s_gen::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s_gen::@19 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] )
-  to:sin16s_gen::@7
-sin16s_gen::@7: scope:[sin16s_gen]  from sin16s_gen::@15
-  [102] (signed word) sin16s_gen::sinx#1 ← - (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] )
+sin16s_gen::@1: scope:[sin16s_gen]  from sin16s_gen::@3 sin16s_gen::@4
+  [62] (word) sin16s_gen::i#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(word) sin16s_gen::i#1 ) [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
+  [62] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[120]) main::sintab1#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#1 ) [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
+  [62] (dword) sin16s_gen::x#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(dword) sin16s_gen::x#1 ) [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
+  [63] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] )
+  [64] call sin16s param-assignment [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
+  [65] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] )
   to:sin16s_gen::@4
-sin16s_gen::@4: scope:[sin16s_gen]  from sin16s_gen::@19 sin16s_gen::@7
-  [103] (signed word) sin16s_gen::sinx#2 ← phi( sin16s_gen::@19/(signed word~) sin16s_gen::sinx#3 sin16s_gen::@7/(signed word) sin16s_gen::sinx#1 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#2 ] )
-  [104] *((signed word*) sin16s_gen::sintab#10) ← (signed word) sin16s_gen::sinx#2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] )
-  [105] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] )
-  [106] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#10 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] )
-  [107] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#10 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] )
-  [108] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] )
+sin16s_gen::@4: scope:[sin16s_gen]  from sin16s_gen::@1
+  [66] (signed word~) sin16s_gen::$1 ← (signed word) sin16s::return#0 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] )
+  [67] *((signed word*) sin16s_gen::sintab#2) ← (signed word~) sin16s_gen::$1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
+  [68] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] )
+  [69] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#2 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] )
+  [70] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#2 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] )
+  [71] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] )
   to:sin16s_gen::@return
 sin16s_gen::@return: scope:[sin16s_gen]  from sin16s_gen::@4
-  [109] return  [ ] ( main:2::sin16s_gen:5 [ ] )
+  [72] return  [ ] ( main:2::sin16s_gen:5 [ ] )
   to:@return
-sin16s_gen::@19: scope:[sin16s_gen]  from sin16s_gen::@15
-  [110] (signed word~) sin16s_gen::sinx#3 ← (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] )
-  to:sin16s_gen::@4
-sin16s_gen::@17: scope:[sin16s_gen]  from sin16s_gen::@1
-  [111] (dword~) sin16s_gen::xp#7 ← (dword) sin16s_gen::x#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] )
-  to:sin16s_gen::@2
-mul_u16_sel: scope:[mul_u16_sel]  from sin16s_gen::@10 sin16s_gen::@11 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@14 sin16s_gen::@3
-  [112] (byte) mul_u16_sel::select#6 ← phi( sin16s_gen::@10/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s_gen::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s_gen::@12/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@13/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@14/(byte/signed byte/word/signed word/dword/signed dword) 3 sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] )
-  [112] (word) mul_u16_sel::v2#6 ← phi( sin16s_gen::@10/(word) mul_u16_sel::v2#1 sin16s_gen::@11/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 sin16s_gen::@12/(word) mul_u16_sel::v2#3 sin16s_gen::@13/(word) mul_u16_sel::v2#4 sin16s_gen::@14/(dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 sin16s_gen::@3/(word) mul_u16_sel::v2#0 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] )
-  [112] (word) mul_u16_sel::v1#6 ← phi( sin16s_gen::@10/(word) mul_u16_sel::v1#1 sin16s_gen::@11/(word) mul_u16_sel::v1#2 sin16s_gen::@12/(word) mul_u16_sel::v1#3 sin16s_gen::@13/(word) mul_u16_sel::v1#4 sin16s_gen::@14/(word) mul_u16_sel::v1#5 sin16s_gen::@3/(word) mul_u16_sel::v1#0 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] )
-  [113] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] )
-  [114] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] )
-  [115] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
-  [116] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] )
+sin16s: scope:[sin16s]  from sin16s_gen::@1
+  [73] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] )
+  to:sin16s::@4
+sin16s::@4: scope:[sin16s]  from sin16s
+  [74] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#1 ] )
+  to:sin16s::@1
+sin16s::@1: scope:[sin16s]  from sin16s sin16s::@4
+  [75] (byte) sin16s::isUpper#10 ← phi( sin16s/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@4/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ sin16s::x#4 sin16s::isUpper#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#4 sin16s::isUpper#10 ] )
+  [75] (dword) sin16s::x#4 ← phi( sin16s/(dword) sin16s::x#0 sin16s::@4/(dword) sin16s::x#1 ) [ sin16s::x#4 sin16s::isUpper#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#4 sin16s::isUpper#10 ] )
+  [76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#4 sin16s::isUpper#10 ] )
+  to:sin16s::@5
+sin16s::@5: scope:[sin16s]  from sin16s::@1
+  [77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#10 sin16s::x#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x#2 ] )
+  to:sin16s::@2
+sin16s::@2: scope:[sin16s]  from sin16s::@1 sin16s::@5
+  [78] (dword) sin16s::x#6 ← phi( sin16s::@1/(dword) sin16s::x#4 sin16s::@5/(dword) sin16s::x#2 ) [ sin16s::isUpper#10 sin16s::x#6 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x#6 ] )
+  [79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#10 sin16s::$6 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::$6 ] )
+  [80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#10 sin16s::x1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 ] )
+  [81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 ] )
+  [82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] )
+  [83] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] )
+  [84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#0 ] )
+  to:sin16s::@8
+sin16s::@8: scope:[sin16s]  from sin16s::@2
+  [85] (word) sin16s::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x2#0 ] )
+  [86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 ] )
+  [87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] )
+  [88] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] )
+  [89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#1 ] )
+  to:sin16s::@9
+sin16s::@9: scope:[sin16s]  from sin16s::@8
+  [90] (word) sin16s::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 ] )
+  [91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] )
+  [92] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] )
+  [93] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] )
+  to:sin16s::@10
+sin16s::@10: scope:[sin16s]  from sin16s::@9
+  [94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] )
+  [95] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] )
+  [96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] )
+  [97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] )
+  [98] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  [99] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] )
+  to:sin16s::@11
+sin16s::@11: scope:[sin16s]  from sin16s::@10
+  [100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] )
+  [101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] )
+  [102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] )
+  [103] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  [104] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#12 ] )
+  to:sin16s::@12
+sin16s::@12: scope:[sin16s]  from sin16s::@11
+  [105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5#0 ] )
+  [106] (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] )
+  [107] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  [108] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] )
+  to:sin16s::@13
+sin16s::@13: scope:[sin16s]  from sin16s::@12
+  [109] (word) sin16s::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5_128#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5_128#0 ] )
+  [110] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#10 sin16s::usinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#1 ] )
+  [111] if((byte) sin16s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@16 [ sin16s::usinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::usinx#1 ] )
+  to:sin16s::@6
+sin16s::@6: scope:[sin16s]  from sin16s::@13
+  [112] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::sinx#1 ] )
+  to:sin16s::@3
+sin16s::@3: scope:[sin16s]  from sin16s::@16 sin16s::@6
+  [113] (signed word) sin16s::return#1 ← phi( sin16s::@16/(signed word~) sin16s::return#5 sin16s::@6/(signed word) sin16s::sinx#1 ) [ sin16s::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
+  to:sin16s::@return
+sin16s::@return: scope:[sin16s]  from sin16s::@3
+  [114] return  [ sin16s::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
+  to:@return
+sin16s::@16: scope:[sin16s]  from sin16s::@13
+  [115] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1 [ sin16s::return#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#5 ] )
+  to:sin16s::@3
+mul_u16_sel: scope:[mul_u16_sel]  from sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@2 sin16s::@8 sin16s::@9
+  [116] (byte) mul_u16_sel::select#6 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@12/(byte/signed byte/word/signed word/dword/signed dword) 3 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] )
+  [116] (word) mul_u16_sel::v2#6 ← phi( sin16s::@10/(word) mul_u16_sel::v2#3 sin16s::@11/(word) mul_u16_sel::v2#4 sin16s::@12/(dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 sin16s::@2/(word) mul_u16_sel::v2#0 sin16s::@8/(word) mul_u16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] )
+  [116] (word) mul_u16_sel::v1#6 ← phi( sin16s::@10/(word) mul_u16_sel::v1#3 sin16s::@11/(word) mul_u16_sel::v1#4 sin16s::@12/(word) mul_u16_sel::v1#5 sin16s::@2/(word) mul_u16_sel::v1#0 sin16s::@8/(word) mul_u16_sel::v1#1 sin16s::@9/(word) mul_u16_sel::v1#2 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] )
+  [117] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] )
+  [118] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] )
+  [119] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
+  [120] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] )
   to:mul_u16_sel::@2
 mul_u16_sel::@2: scope:[mul_u16_sel]  from mul_u16_sel
-  [117] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] )
-  [118] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] )
-  [119] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] )
+  [121] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] )
+  [122] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] )
+  [123] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] )
   to:mul_u16_sel::@return
 mul_u16_sel::@return: scope:[mul_u16_sel]  from mul_u16_sel::@2
-  [120] return  [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] )
+  [124] return  [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] )
   to:@return
 mul16u: scope:[mul16u]  from mul_u16_sel
-  [121] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] )
+  [125] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] )
   to:mul16u::@1
 mul16u::@1: scope:[mul16u]  from mul16u mul16u::@4
-  [122] (dword) mul16u::mb#2 ← phi( mul16u/(dword) mul16u::mb#0 mul16u::@4/(dword) mul16u::mb#1 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
-  [122] (dword) mul16u::res#2 ← phi( mul16u/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u::@4/(dword) mul16u::res#6 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
-  [122] (word) mul16u::a#2 ← phi( mul16u/(word) mul16u::a#1 mul16u::@4/(word) mul16u::a#0 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
-  [123] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
+  [126] (dword) mul16u::mb#2 ← phi( mul16u/(dword) mul16u::mb#0 mul16u::@4/(dword) mul16u::mb#1 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
+  [126] (dword) mul16u::res#2 ← phi( mul16u/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u::@4/(dword) mul16u::res#6 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
+  [126] (word) mul16u::a#2 ← phi( mul16u/(word) mul16u::a#1 mul16u::@4/(word) mul16u::a#0 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
+  [127] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
   to:mul16u::@return
 mul16u::@return: scope:[mul16u]  from mul16u::@1
-  [124] return  [ mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
+  [128] return  [ mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
   to:@return
 mul16u::@2: scope:[mul16u]  from mul16u::@1
-  [125] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] )
-  [126] if((byte~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
+  [129] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] )
+  [130] if((byte~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
   to:mul16u::@7
 mul16u::@7: scope:[mul16u]  from mul16u::@2
-  [127] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] )
+  [131] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] )
   to:mul16u::@4
 mul16u::@4: scope:[mul16u]  from mul16u::@2 mul16u::@7
-  [128] (dword) mul16u::res#6 ← phi( mul16u::@2/(dword) mul16u::res#2 mul16u::@7/(dword) mul16u::res#1 ) [ mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] )
-  [129] (word) mul16u::a#0 ← (word) mul16u::a#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] )
-  [130] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] )
+  [132] (dword) mul16u::res#6 ← phi( mul16u::@2/(dword) mul16u::res#2 mul16u::@7/(dword) mul16u::res#1 ) [ mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] )
+  [133] (word) mul16u::a#0 ← (word) mul16u::a#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] )
+  [134] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] )
   to:mul16u::@1
 div32u16u: scope:[div32u16u]  from sin16s_gen
-  [131] phi() [ ] ( main:2::sin16s_gen:5::div32u16u:59 [ ] )
-  [132] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] )
-  [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] )
+  [135] phi() [ ] ( main:2::sin16s_gen:5::div32u16u:59 [ ] )
+  [136] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] )
+  [137] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] )
   to:div32u16u::@2
 div32u16u::@2: scope:[div32u16u]  from div32u16u
-  [134] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] )
-  [135] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] )
-  [136] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] )
-  [137] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] )
+  [138] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] )
+  [139] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] )
+  [140] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] )
+  [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] )
   to:div32u16u::@3
 div32u16u::@3: scope:[div32u16u]  from div32u16u::@2
-  [138] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] )
-  [139] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
+  [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] )
+  [143] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
   to:div32u16u::@return
 div32u16u::@return: scope:[div32u16u]  from div32u16u::@3
-  [140] return  [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
+  [144] return  [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
   to:@return
 divr16u: scope:[divr16u]  from div32u16u div32u16u::@2
-  [141] (word) divr16u::divisor#6 ← phi( div32u16u/(const word) main::wavelength#0 div32u16u::@2/(const word) main::wavelength#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
-  [141] (word) divr16u::dividend#5 ← phi( div32u16u/>(const dword) PI2_u4f28#0 div32u16u::@2/<(const dword) PI2_u4f28#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
-  [141] (word) divr16u::rem#10 ← phi( div32u16u/(byte/signed byte/word/signed word/dword/signed dword) 0 div32u16u::@2/(word) divr16u::rem#4 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
+  [145] (word) divr16u::divisor#6 ← phi( div32u16u/(const word) main::wavelength#0 div32u16u::@2/(const word) main::wavelength#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
+  [145] (word) divr16u::dividend#5 ← phi( div32u16u/>(const dword) PI2_u4f28#0 div32u16u::@2/<(const dword) PI2_u4f28#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
+  [145] (word) divr16u::rem#10 ← phi( div32u16u/(byte/signed byte/word/signed word/dword/signed dword) 0 div32u16u::@2/(word) divr16u::rem#4 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
   to:divr16u::@1
 divr16u::@1: scope:[divr16u]  from divr16u divr16u::@3
-  [142] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
-  [142] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
-  [142] (word) divr16u::dividend#3 ← phi( divr16u/(word) divr16u::dividend#5 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
-  [142] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
-  [143] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
-  [144] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] )
-  [145] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] )
-  [146] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
+  [146] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
+  [146] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
+  [146] (word) divr16u::dividend#3 ← phi( divr16u/(word) divr16u::dividend#5 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
+  [146] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
+  [147] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
+  [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] )
+  [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] )
+  [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
   to:divr16u::@4
 divr16u::@4: scope:[divr16u]  from divr16u::@1
-  [147] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
+  [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
   to:divr16u::@2
 divr16u::@2: scope:[divr16u]  from divr16u::@1 divr16u::@4
-  [148] (word) divr16u::rem#6 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] )
-  [149] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] )
-  [150] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
-  [151] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
+  [152] (word) divr16u::rem#6 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] )
+  [153] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] )
+  [154] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
+  [155] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
   to:divr16u::@5
 divr16u::@5: scope:[divr16u]  from divr16u::@2
-  [152] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] )
-  [153] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] )
+  [156] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] )
+  [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] )
   to:divr16u::@3
 divr16u::@3: scope:[divr16u]  from divr16u::@2 divr16u::@5
-  [154] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] )
-  [154] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] )
-  [155] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] )
-  [156] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] )
+  [158] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] )
+  [158] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] )
+  [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] )
+  [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] )
   to:divr16u::@6
 divr16u::@6: scope:[divr16u]  from divr16u::@3
-  [157] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
+  [161] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
   to:divr16u::@return
 divr16u::@return: scope:[divr16u]  from divr16u::@6
-  [158] return  [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
+  [162] return  [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
   to:@return
 
 DOMINATORS
 @begin dominated by  @begin 
-@25 dominated by  @25 @begin 
-@end dominated by  @25 @end @begin 
-main dominated by  @25 main @begin 
-main::@5 dominated by  @25 main main::@5 @begin 
-main::@1 dominated by  @25 main main::@1 main::@5 @begin 
-main::@3 dominated by  @25 main main::@1 main::@5 main::@3 @begin 
-main::@2 dominated by  @25 main main::@1 main::@2 main::@5 @begin 
-main::@7 dominated by  main::@7 @25 main main::@1 main::@2 main::@5 @begin 
-main::@8 dominated by  main::@7 @25 main::@8 main main::@1 main::@2 main::@5 @begin 
-main::@return dominated by  main::@7 @25 main::@8 main main::@1 main::@2 main::@5 @begin main::@return 
-print_str dominated by  @25 main main::@1 main::@5 @begin print_str 
-print_str::@1 dominated by  @25 main main::@1 main::@5 @begin print_str::@1 print_str 
-print_str::@return dominated by  @25 main main::@1 main::@5 @begin print_str::@return print_str::@1 print_str 
-print_str::@2 dominated by  @25 main main::@1 main::@5 @begin print_str::@1 print_str::@2 print_str 
-print_sword dominated by  @25 main main::@1 main::@2 main::@5 @begin print_sword 
-print_sword::@2 dominated by  @25 print_sword::@2 main main::@1 main::@2 main::@5 @begin print_sword 
-print_sword::@4 dominated by  @25 print_sword::@2 print_sword::@4 main main::@1 main::@2 main::@5 @begin print_sword 
-print_sword::@1 dominated by  @25 print_sword::@1 main main::@1 main::@2 main::@5 @begin print_sword 
-print_sword::@return dominated by  @25 print_sword::@1 main main::@1 main::@2 main::@5 @begin print_sword::@return print_sword 
-print_word dominated by  @25 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_sword 
-print_word::@1 dominated by  @25 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_word::@1 print_sword 
-print_word::@return dominated by  @25 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_word::@return print_word::@1 print_sword 
-print_byte dominated by  @25 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_byte print_sword 
-print_byte::@1 dominated by  @25 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_byte::@1 print_byte print_sword 
-print_byte::@return dominated by  @25 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_byte::@return print_byte::@1 print_byte print_sword 
-print_char dominated by  @25 main print_char main::@1 main::@2 main::@5 @begin print_sword 
-print_char::@return dominated by  @25 main print_char main::@1 main::@2 main::@5 print_char::@return @begin print_sword 
-print_cls dominated by  @25 main main::@5 @begin print_cls 
-print_cls::@1 dominated by  @25 main main::@5 @begin print_cls::@1 print_cls 
-print_cls::@return dominated by  @25 main main::@5 @begin print_cls::@return print_cls::@1 print_cls 
-sin16s_gen dominated by  @25 main @begin sin16s_gen 
-sin16s_gen::@9 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen 
-sin16s_gen::@1 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@1 
-sin16s_gen::@5 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@1 sin16s_gen::@5 
-sin16s_gen::@2 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@1 sin16s_gen::@2 
-sin16s_gen::@6 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@6 
-sin16s_gen::@3 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 
-sin16s_gen::@10 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@10 
-sin16s_gen::@11 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@10 sin16s_gen::@11 
-sin16s_gen::@12 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@12 sin16s_gen::@10 sin16s_gen::@11 
-sin16s_gen::@13 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@10 sin16s_gen::@11 
-sin16s_gen::@14 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@14 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@10 sin16s_gen::@11 
-sin16s_gen::@15 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@10 sin16s_gen::@11 
-sin16s_gen::@7 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@7 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@10 sin16s_gen::@11 
-sin16s_gen::@4 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@10 sin16s_gen::@11 
-sin16s_gen::@return dominated by  @25 main sin16s_gen::@9 sin16s_gen::@return @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@10 sin16s_gen::@11 
-sin16s_gen::@19 dominated by  @25 sin16s_gen::@19 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@10 sin16s_gen::@11 
-sin16s_gen::@17 dominated by  @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@1 sin16s_gen::@17 
-mul_u16_sel dominated by  @25 main sin16s_gen::@9 mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 
-mul_u16_sel::@2 dominated by  @25 main sin16s_gen::@9 mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 mul_u16_sel::@2 
-mul_u16_sel::@return dominated by  @25 main sin16s_gen::@9 mul_u16_sel @begin mul_u16_sel::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 mul_u16_sel::@2 
-mul16u dominated by  @25 main sin16s_gen::@9 mul16u mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 
-mul16u::@1 dominated by  @25 main sin16s_gen::@9 mul16u mul16u::@1 mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 
-mul16u::@return dominated by  @25 main sin16s_gen::@9 mul16u mul16u::@1 mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 mul16u::@return 
-mul16u::@2 dominated by  @25 main sin16s_gen::@9 mul16u mul16u::@1 mul16u::@2 mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 
-mul16u::@7 dominated by  @25 main sin16s_gen::@9 mul16u mul16u::@1 mul16u::@2 mul_u16_sel @begin mul16u::@7 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 
-mul16u::@4 dominated by  @25 main sin16s_gen::@9 mul16u mul16u::@1 mul16u::@2 mul_u16_sel @begin mul16u::@4 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 
-div32u16u dominated by  @25 main @begin sin16s_gen div32u16u 
-div32u16u::@2 dominated by  @25 main div32u16u::@2 @begin sin16s_gen div32u16u 
-div32u16u::@3 dominated by  @25 main div32u16u::@2 div32u16u::@3 @begin sin16s_gen div32u16u 
-div32u16u::@return dominated by  @25 main div32u16u::@2 div32u16u::@3 @begin sin16s_gen div32u16u div32u16u::@return 
-divr16u dominated by  divr16u @25 main @begin sin16s_gen div32u16u 
-divr16u::@1 dominated by  divr16u @25 divr16u::@1 main @begin sin16s_gen div32u16u 
-divr16u::@4 dominated by  divr16u @25 divr16u::@1 main divr16u::@4 @begin sin16s_gen div32u16u 
-divr16u::@2 dominated by  divr16u @25 divr16u::@2 divr16u::@1 main @begin sin16s_gen div32u16u 
-divr16u::@5 dominated by  divr16u @25 divr16u::@2 divr16u::@1 main divr16u::@5 @begin sin16s_gen div32u16u 
-divr16u::@3 dominated by  divr16u @25 divr16u::@2 divr16u::@1 main divr16u::@3 @begin sin16s_gen div32u16u 
-divr16u::@6 dominated by  divr16u @25 divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin sin16s_gen div32u16u 
-divr16u::@return dominated by  divr16u @25 divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin sin16s_gen div32u16u divr16u::@return 
+@26 dominated by  @26 @begin 
+@end dominated by  @26 @end @begin 
+main dominated by  @26 main @begin 
+main::@5 dominated by  @26 main main::@5 @begin 
+main::@1 dominated by  @26 main main::@1 main::@5 @begin 
+main::@3 dominated by  @26 main main::@1 main::@5 main::@3 @begin 
+main::@2 dominated by  @26 main main::@1 main::@2 main::@5 @begin 
+main::@7 dominated by  main::@7 @26 main main::@1 main::@2 main::@5 @begin 
+main::@8 dominated by  main::@7 main::@8 @26 main main::@1 main::@2 main::@5 @begin 
+main::@return dominated by  main::@7 main::@8 @26 main main::@1 main::@2 main::@5 @begin main::@return 
+print_str dominated by  @26 main main::@1 main::@5 @begin print_str 
+print_str::@1 dominated by  @26 main main::@1 main::@5 @begin print_str::@1 print_str 
+print_str::@return dominated by  @26 main main::@1 main::@5 @begin print_str::@return print_str::@1 print_str 
+print_str::@2 dominated by  @26 main main::@1 main::@5 @begin print_str::@1 print_str::@2 print_str 
+print_sword dominated by  @26 main main::@1 main::@2 main::@5 @begin print_sword 
+print_sword::@2 dominated by  @26 print_sword::@2 main main::@1 main::@2 main::@5 @begin print_sword 
+print_sword::@4 dominated by  @26 print_sword::@2 print_sword::@4 main main::@1 main::@2 main::@5 @begin print_sword 
+print_sword::@1 dominated by  @26 print_sword::@1 main main::@1 main::@2 main::@5 @begin print_sword 
+print_sword::@return dominated by  @26 print_sword::@1 main main::@1 main::@2 main::@5 @begin print_sword::@return print_sword 
+print_word dominated by  @26 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_sword 
+print_word::@1 dominated by  @26 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_word::@1 print_sword 
+print_word::@return dominated by  @26 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_word::@return print_word::@1 print_sword 
+print_byte dominated by  @26 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_byte print_sword 
+print_byte::@1 dominated by  @26 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_byte::@1 print_byte print_sword 
+print_byte::@return dominated by  @26 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_byte::@return print_byte::@1 print_byte print_sword 
+print_char dominated by  @26 main print_char main::@1 main::@2 main::@5 @begin print_sword 
+print_char::@return dominated by  @26 main print_char main::@1 main::@2 main::@5 print_char::@return @begin print_sword 
+print_cls dominated by  @26 main main::@5 @begin print_cls 
+print_cls::@1 dominated by  @26 main main::@5 @begin print_cls::@1 print_cls 
+print_cls::@return dominated by  @26 main main::@5 @begin print_cls::@return print_cls::@1 print_cls 
+sin16s_gen dominated by  @26 main @begin sin16s_gen 
+sin16s_gen::@3 dominated by  @26 main @begin sin16s_gen sin16s_gen::@3 
+sin16s_gen::@1 dominated by  @26 main @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 
+sin16s_gen::@4 dominated by  @26 main @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 
+sin16s_gen::@return dominated by  @26 main sin16s_gen::@return @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 
+sin16s dominated by  @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 
+sin16s::@4 dominated by  @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4 
+sin16s::@1 dominated by  @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 
+sin16s::@5 dominated by  @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5 
+sin16s::@2 dominated by  @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 
+sin16s::@8 dominated by  @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2 
+sin16s::@9 dominated by  @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 
+sin16s::@10 dominated by  @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@10 sin16s::@2 
+sin16s::@11 dominated by  @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@11 sin16s::@10 sin16s::@2 
+sin16s::@12 dominated by  @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2 
+sin16s::@13 dominated by  @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@13 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2 
+sin16s::@6 dominated by  @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@13 sin16s::@6 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2 
+sin16s::@3 dominated by  @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@13 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2 
+sin16s::@return dominated by  @26 main sin16s @begin sin16s::@return sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@13 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2 
+sin16s::@16 dominated by  @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@16 sin16s::@8 sin16s::@13 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2 
+mul_u16_sel dominated by  @26 main sin16s mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 
+mul_u16_sel::@2 dominated by  @26 main sin16s mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 mul_u16_sel::@2 
+mul_u16_sel::@return dominated by  @26 main sin16s mul_u16_sel @begin mul_u16_sel::@return sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 mul_u16_sel::@2 
+mul16u dominated by  @26 main mul16u sin16s mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 
+mul16u::@1 dominated by  @26 main mul16u mul16u::@1 sin16s mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 
+mul16u::@return dominated by  @26 main mul16u mul16u::@1 sin16s mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 mul16u::@return 
+mul16u::@2 dominated by  @26 main mul16u mul16u::@1 mul16u::@2 sin16s mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 
+mul16u::@7 dominated by  @26 main mul16u mul16u::@1 mul16u::@2 sin16s mul_u16_sel @begin mul16u::@7 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 
+mul16u::@4 dominated by  @26 main mul16u mul16u::@1 mul16u::@2 sin16s mul_u16_sel @begin mul16u::@4 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 
+div32u16u dominated by  @26 main @begin sin16s_gen div32u16u 
+div32u16u::@2 dominated by  @26 main div32u16u::@2 @begin sin16s_gen div32u16u 
+div32u16u::@3 dominated by  @26 main div32u16u::@2 div32u16u::@3 @begin sin16s_gen div32u16u 
+div32u16u::@return dominated by  @26 main div32u16u::@2 div32u16u::@3 @begin sin16s_gen div32u16u div32u16u::@return 
+divr16u dominated by  divr16u @26 main @begin sin16s_gen div32u16u 
+divr16u::@1 dominated by  divr16u @26 divr16u::@1 main @begin sin16s_gen div32u16u 
+divr16u::@4 dominated by  divr16u @26 divr16u::@1 main divr16u::@4 @begin sin16s_gen div32u16u 
+divr16u::@2 dominated by  divr16u @26 divr16u::@2 divr16u::@1 main @begin sin16s_gen div32u16u 
+divr16u::@5 dominated by  divr16u @26 divr16u::@2 divr16u::@1 main divr16u::@5 @begin sin16s_gen div32u16u 
+divr16u::@3 dominated by  divr16u @26 divr16u::@2 divr16u::@1 main divr16u::@3 @begin sin16s_gen div32u16u 
+divr16u::@6 dominated by  divr16u @26 divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin sin16s_gen div32u16u 
+divr16u::@return dominated by  divr16u @26 divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin sin16s_gen div32u16u divr16u::@return 
 
 NATURAL LOOPS
 Found back edge: Loop head: main::@1 tails: main::@8 blocks: null
@@ -5167,13 +5086,13 @@ Found back edge: Loop head: divr16u::@1 tails: divr16u::@3 blocks: null
 Populated: Loop head: main::@1 tails: main::@8 blocks: main::@8 main::@7 main::@2 main::@1 main::@3 
 Populated: Loop head: print_str::@1 tails: print_str::@2 blocks: print_str::@2 print_str::@1 
 Populated: Loop head: print_cls::@1 tails: print_cls::@1 blocks: print_cls::@1 
-Populated: Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@19 sin16s_gen::@7 sin16s_gen::@15 sin16s_gen::@14 sin16s_gen::@13 sin16s_gen::@12 sin16s_gen::@11 sin16s_gen::@10 sin16s_gen::@3 sin16s_gen::@2 sin16s_gen::@6 sin16s_gen::@17 sin16s_gen::@5 sin16s_gen::@1 
+Populated: Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@1 
 Populated: Loop head: mul16u::@1 tails: mul16u::@4 blocks: mul16u::@4 mul16u::@2 mul16u::@7 mul16u::@1 
 Populated: Loop head: divr16u::@1 tails: divr16u::@3 blocks: divr16u::@3 divr16u::@2 divr16u::@5 divr16u::@1 divr16u::@4 
 Loop head: main::@1 tails: main::@8 blocks: main::@8 main::@7 main::@2 main::@1 main::@3 
 Loop head: print_str::@1 tails: print_str::@2 blocks: print_str::@2 print_str::@1 
 Loop head: print_cls::@1 tails: print_cls::@1 blocks: print_cls::@1 
-Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@19 sin16s_gen::@7 sin16s_gen::@15 sin16s_gen::@14 sin16s_gen::@13 sin16s_gen::@12 sin16s_gen::@11 sin16s_gen::@10 sin16s_gen::@3 sin16s_gen::@2 sin16s_gen::@6 sin16s_gen::@17 sin16s_gen::@5 sin16s_gen::@1 
+Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@1 
 Loop head: mul16u::@1 tails: mul16u::@4 blocks: mul16u::@4 mul16u::@2 mul16u::@7 mul16u::@1 
 Loop head: divr16u::@1 tails: divr16u::@3 blocks: divr16u::@3 divr16u::@2 divr16u::@5 divr16u::@1 divr16u::@4 
 
@@ -5182,25 +5101,26 @@ Found 0 loops in scope []
 Found 1 loops in scope [main]
   Loop head: main::@1 tails: main::@8 blocks: main::@8 main::@7 main::@2 main::@1 main::@3 
 Found 1 loops in scope [sin16s_gen]
-  Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@19 sin16s_gen::@7 sin16s_gen::@15 sin16s_gen::@14 sin16s_gen::@13 sin16s_gen::@12 sin16s_gen::@11 sin16s_gen::@10 sin16s_gen::@3 sin16s_gen::@2 sin16s_gen::@6 sin16s_gen::@17 sin16s_gen::@5 sin16s_gen::@1 
+  Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@1 
 Found 1 loops in scope [print_cls]
   Loop head: print_cls::@1 tails: print_cls::@1 blocks: print_cls::@1 
 Found 1 loops in scope [print_str]
   Loop head: print_str::@1 tails: print_str::@2 blocks: print_str::@2 print_str::@1 
 Found 0 loops in scope [print_sword]
 Found 0 loops in scope [div32u16u]
-Found 0 loops in scope [mul_u16_sel]
+Found 0 loops in scope [sin16s]
 Found 0 loops in scope [print_char]
 Found 0 loops in scope [print_word]
 Found 1 loops in scope [divr16u]
   Loop head: divr16u::@1 tails: divr16u::@3 blocks: divr16u::@3 divr16u::@2 divr16u::@5 divr16u::@1 divr16u::@4 
+Found 0 loops in scope [mul_u16_sel]
+Found 0 loops in scope [print_byte]
 Found 1 loops in scope [mul16u]
   Loop head: mul16u::@1 tails: mul16u::@4 blocks: mul16u::@4 mul16u::@2 mul16u::@7 mul16u::@1 
-Found 0 loops in scope [print_byte]
 Loop head: main::@1 tails: main::@8 blocks: main::@8 main::@7 main::@2 main::@1 main::@3  depth: 1
 Loop head: print_str::@1 tails: print_str::@2 blocks: print_str::@2 print_str::@1  depth: 2
 Loop head: print_cls::@1 tails: print_cls::@1 blocks: print_cls::@1  depth: 1
-Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@19 sin16s_gen::@7 sin16s_gen::@15 sin16s_gen::@14 sin16s_gen::@13 sin16s_gen::@12 sin16s_gen::@11 sin16s_gen::@10 sin16s_gen::@3 sin16s_gen::@2 sin16s_gen::@6 sin16s_gen::@17 sin16s_gen::@5 sin16s_gen::@1  depth: 1
+Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@1  depth: 1
 Loop head: mul16u::@1 tails: mul16u::@4 blocks: mul16u::@4 mul16u::@2 mul16u::@7 mul16u::@1  depth: 2
 Loop head: divr16u::@1 tails: divr16u::@3 blocks: divr16u::@3 divr16u::@2 divr16u::@5 divr16u::@1 divr16u::@4  depth: 1
 
@@ -5291,29 +5211,29 @@ VARIABLE REGISTER WEIGHTS
 (dword~) mul_u16_sel::$0 4.0
 (dword~) mul_u16_sel::$1 4.0
 (word) mul_u16_sel::return
-(word) mul_u16_sel::return#0 22.0
-(word) mul_u16_sel::return#1 22.0
-(word) mul_u16_sel::return#10 22.0
-(word) mul_u16_sel::return#11 22.0
-(word) mul_u16_sel::return#12 22.0
-(word) mul_u16_sel::return#13 22.0
-(word) mul_u16_sel::return#14 8.5
+(word) mul_u16_sel::return#0 4.0
+(word) mul_u16_sel::return#1 4.0
+(word) mul_u16_sel::return#10 4.0
+(word) mul_u16_sel::return#11 4.0
+(word) mul_u16_sel::return#12 4.0
+(word) mul_u16_sel::return#13 4.0
+(word) mul_u16_sel::return#14 1.75
 (byte) mul_u16_sel::select
 (byte) mul_u16_sel::select#6 0.3333333333333333
 (word) mul_u16_sel::v1
-(word) mul_u16_sel::v1#0 11.0
-(word) mul_u16_sel::v1#1 11.0
-(word) mul_u16_sel::v1#2 22.0
-(word) mul_u16_sel::v1#3 11.0
-(word) mul_u16_sel::v1#4 11.0
-(word) mul_u16_sel::v1#5 22.0
-(word) mul_u16_sel::v1#6 68.0
+(word) mul_u16_sel::v1#0 2.0
+(word) mul_u16_sel::v1#1 2.0
+(word) mul_u16_sel::v1#2 4.0
+(word) mul_u16_sel::v1#3 2.0
+(word) mul_u16_sel::v1#4 2.0
+(word) mul_u16_sel::v1#5 4.0
+(word) mul_u16_sel::v1#6 14.0
 (word) mul_u16_sel::v2
-(word) mul_u16_sel::v2#0 22.0
-(word) mul_u16_sel::v2#1 22.0
-(word) mul_u16_sel::v2#3 22.0
-(word) mul_u16_sel::v2#4 22.0
-(word) mul_u16_sel::v2#6 23.0
+(word) mul_u16_sel::v2#0 4.0
+(word) mul_u16_sel::v2#1 4.0
+(word) mul_u16_sel::v2#3 4.0
+(word) mul_u16_sel::v2#4 4.0
+(word) mul_u16_sel::v2#6 5.0
 (void()) print_byte((byte) print_byte::b)
 (byte~) print_byte::$0 4.0
 (byte~) print_byte::$2 4.0
@@ -5345,49 +5265,53 @@ VARIABLE REGISTER WEIGHTS
 (word) print_word::w
 (word) rem16u
 (word) rem16u#1 0.8
+(signed word()) sin16s((dword) sin16s::x)
+(dword~) sin16s::$6 4.0
+(byte) sin16s::isUpper
+(byte) sin16s::isUpper#10 0.05555555555555555
+(signed word) sin16s::return
+(signed word) sin16s::return#0 22.0
+(signed word) sin16s::return#1 5.0
+(signed word~) sin16s::return#5 4.0
+(signed word) sin16s::sinx
+(signed word) sin16s::sinx#1 4.0
+(word) sin16s::usinx
+(word) sin16s::usinx#0 0.26666666666666666
+(word) sin16s::usinx#1 1.0
+(dword) sin16s::x
+(dword) sin16s::x#0 8.5
+(dword) sin16s::x#1 4.0
+(dword) sin16s::x#2 4.0
+(dword) sin16s::x#4 5.0
+(dword) sin16s::x#6 6.0
+(word) sin16s::x1
+(word) sin16s::x1#0 0.6363636363636365
+(word) sin16s::x2
+(word) sin16s::x2#0 4.0
+(word) sin16s::x3
+(word) sin16s::x3#0 1.0
+(word) sin16s::x3_6
+(word) sin16s::x3_6#0 4.0
+(word) sin16s::x4
+(word) sin16s::x4#0 4.0
+(word) sin16s::x5
+(word) sin16s::x5#0 4.0
+(word) sin16s::x5_128
+(word) sin16s::x5_128#0 4.0
 (void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength)
-(dword~) sin16s_gen::$7 22.0
+(signed word~) sin16s_gen::$1 22.0
 (word) sin16s_gen::i
 (word) sin16s_gen::i#1 16.5
-(word) sin16s_gen::i#10 0.46808510638297873
-(byte) sin16s_gen::isUpper
-(byte) sin16s_gen::isUpper#10 0.3055555555555556
+(word) sin16s_gen::i#2 2.75
 (signed word*) sin16s_gen::sintab
 (signed word*) sin16s_gen::sintab#1 5.5
-(signed word*) sin16s_gen::sintab#10 0.7333333333333333
-(signed word) sin16s_gen::sinx
-(signed word) sin16s_gen::sinx#1 22.0
-(signed word) sin16s_gen::sinx#2 33.0
-(signed word~) sin16s_gen::sinx#3 22.0
+(signed word*) sin16s_gen::sintab#2 5.5
 (dword) sin16s_gen::step
-(dword) sin16s_gen::step#0 0.26
-(word) sin16s_gen::usinx
-(word) sin16s_gen::usinx#0 1.4666666666666666
-(word) sin16s_gen::usinx#1 5.5
+(dword) sin16s_gen::step#0 1.1818181818181819
 (word) sin16s_gen::wavelength
 (dword) sin16s_gen::x
 (dword) sin16s_gen::x#1 7.333333333333333
-(dword) sin16s_gen::x#10 1.1956521739130435
-(word) sin16s_gen::x1
-(word) sin16s_gen::x1#0 3.5
-(word) sin16s_gen::x2
-(word) sin16s_gen::x2#0 22.0
-(word) sin16s_gen::x3
-(word) sin16s_gen::x3#0 5.5
-(word) sin16s_gen::x3_6
-(word) sin16s_gen::x3_6#0 22.0
-(word) sin16s_gen::x4
-(word) sin16s_gen::x4#0 22.0
-(word) sin16s_gen::x5
-(word) sin16s_gen::x5#0 22.0
-(word) sin16s_gen::x5_128
-(word) sin16s_gen::x5_128#0 22.0
-(dword) sin16s_gen::xp
-(dword) sin16s_gen::xp#1 22.0
-(dword) sin16s_gen::xp#2 22.0
-(dword) sin16s_gen::xp#3 27.5
-(dword) sin16s_gen::xp#5 33.0
-(dword~) sin16s_gen::xp#7 22.0
+(dword) sin16s_gen::x#2 4.714285714285714
 
 Initial phi equivalence classes
 [ main::st1#2 main::st1#1 ]
@@ -5397,14 +5321,14 @@ Initial phi equivalence classes
 [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ]
 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 ]
 [ print_cls::sc#2 print_cls::sc#1 ]
-[ sin16s_gen::x#10 sin16s_gen::x#1 ]
-[ sin16s_gen::sintab#10 sin16s_gen::sintab#1 ]
-[ sin16s_gen::i#10 sin16s_gen::i#1 ]
-[ sin16s_gen::isUpper#10 ]
-[ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 ]
-[ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 ]
-[ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 ]
-[ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 ]
+[ sin16s_gen::x#2 sin16s_gen::x#1 ]
+[ sin16s_gen::sintab#2 sin16s_gen::sintab#1 ]
+[ sin16s_gen::i#2 sin16s_gen::i#1 ]
+[ sin16s::isUpper#10 ]
+[ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ]
+[ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ]
+[ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 ]
+[ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 ]
 [ mul_u16_sel::select#6 ]
 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ]
 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ]
@@ -5419,22 +5343,24 @@ Added variable print_byte::$0 to zero page equivalence class [ print_byte::$0 ]
 Added variable print_byte::$2 to zero page equivalence class [ print_byte::$2 ]
 Added variable div32u16u::return#0 to zero page equivalence class [ div32u16u::return#0 ]
 Added variable sin16s_gen::step#0 to zero page equivalence class [ sin16s_gen::step#0 ]
-Added variable sin16s_gen::$7 to zero page equivalence class [ sin16s_gen::$7 ]
-Added variable sin16s_gen::x1#0 to zero page equivalence class [ sin16s_gen::x1#0 ]
+Added variable sin16s::return#0 to zero page equivalence class [ sin16s::return#0 ]
+Added variable sin16s_gen::$1 to zero page equivalence class [ sin16s_gen::$1 ]
+Added variable sin16s::$6 to zero page equivalence class [ sin16s::$6 ]
+Added variable sin16s::x1#0 to zero page equivalence class [ sin16s::x1#0 ]
 Added variable mul_u16_sel::return#0 to zero page equivalence class [ mul_u16_sel::return#0 ]
-Added variable sin16s_gen::x2#0 to zero page equivalence class [ sin16s_gen::x2#0 ]
+Added variable sin16s::x2#0 to zero page equivalence class [ sin16s::x2#0 ]
 Added variable mul_u16_sel::return#1 to zero page equivalence class [ mul_u16_sel::return#1 ]
-Added variable sin16s_gen::x3#0 to zero page equivalence class [ sin16s_gen::x3#0 ]
+Added variable sin16s::x3#0 to zero page equivalence class [ sin16s::x3#0 ]
 Added variable mul_u16_sel::return#10 to zero page equivalence class [ mul_u16_sel::return#10 ]
-Added variable sin16s_gen::x3_6#0 to zero page equivalence class [ sin16s_gen::x3_6#0 ]
-Added variable sin16s_gen::usinx#0 to zero page equivalence class [ sin16s_gen::usinx#0 ]
+Added variable sin16s::x3_6#0 to zero page equivalence class [ sin16s::x3_6#0 ]
+Added variable sin16s::usinx#0 to zero page equivalence class [ sin16s::usinx#0 ]
 Added variable mul_u16_sel::return#11 to zero page equivalence class [ mul_u16_sel::return#11 ]
-Added variable sin16s_gen::x4#0 to zero page equivalence class [ sin16s_gen::x4#0 ]
+Added variable sin16s::x4#0 to zero page equivalence class [ sin16s::x4#0 ]
 Added variable mul_u16_sel::return#12 to zero page equivalence class [ mul_u16_sel::return#12 ]
-Added variable sin16s_gen::x5#0 to zero page equivalence class [ sin16s_gen::x5#0 ]
+Added variable sin16s::x5#0 to zero page equivalence class [ sin16s::x5#0 ]
 Added variable mul_u16_sel::return#13 to zero page equivalence class [ mul_u16_sel::return#13 ]
-Added variable sin16s_gen::x5_128#0 to zero page equivalence class [ sin16s_gen::x5_128#0 ]
-Added variable sin16s_gen::usinx#1 to zero page equivalence class [ sin16s_gen::usinx#1 ]
+Added variable sin16s::x5_128#0 to zero page equivalence class [ sin16s::x5_128#0 ]
+Added variable sin16s::usinx#1 to zero page equivalence class [ sin16s::usinx#1 ]
 Added variable mul16u::b#0 to zero page equivalence class [ mul16u::b#0 ]
 Added variable mul16u::return#2 to zero page equivalence class [ mul16u::return#2 ]
 Added variable mul_u16_sel::$0 to zero page equivalence class [ mul_u16_sel::$0 ]
@@ -5457,14 +5383,14 @@ Complete equivalence classes
 [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ]
 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 ]
 [ print_cls::sc#2 print_cls::sc#1 ]
-[ sin16s_gen::x#10 sin16s_gen::x#1 ]
-[ sin16s_gen::sintab#10 sin16s_gen::sintab#1 ]
-[ sin16s_gen::i#10 sin16s_gen::i#1 ]
-[ sin16s_gen::isUpper#10 ]
-[ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 ]
-[ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 ]
-[ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 ]
-[ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 ]
+[ sin16s_gen::x#2 sin16s_gen::x#1 ]
+[ sin16s_gen::sintab#2 sin16s_gen::sintab#1 ]
+[ sin16s_gen::i#2 sin16s_gen::i#1 ]
+[ sin16s::isUpper#10 ]
+[ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ]
+[ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ]
+[ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 ]
+[ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 ]
 [ mul_u16_sel::select#6 ]
 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ]
 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ]
@@ -5479,22 +5405,24 @@ Complete equivalence classes
 [ print_byte::$2 ]
 [ div32u16u::return#0 ]
 [ sin16s_gen::step#0 ]
-[ sin16s_gen::$7 ]
-[ sin16s_gen::x1#0 ]
+[ sin16s::return#0 ]
+[ sin16s_gen::$1 ]
+[ sin16s::$6 ]
+[ sin16s::x1#0 ]
 [ mul_u16_sel::return#0 ]
-[ sin16s_gen::x2#0 ]
+[ sin16s::x2#0 ]
 [ mul_u16_sel::return#1 ]
-[ sin16s_gen::x3#0 ]
+[ sin16s::x3#0 ]
 [ mul_u16_sel::return#10 ]
-[ sin16s_gen::x3_6#0 ]
-[ sin16s_gen::usinx#0 ]
+[ sin16s::x3_6#0 ]
+[ sin16s::usinx#0 ]
 [ mul_u16_sel::return#11 ]
-[ sin16s_gen::x4#0 ]
+[ sin16s::x4#0 ]
 [ mul_u16_sel::return#12 ]
-[ sin16s_gen::x5#0 ]
+[ sin16s::x5#0 ]
 [ mul_u16_sel::return#13 ]
-[ sin16s_gen::x5_128#0 ]
-[ sin16s_gen::usinx#1 ]
+[ sin16s::x5_128#0 ]
+[ sin16s::usinx#1 ]
 [ mul16u::b#0 ]
 [ mul16u::return#2 ]
 [ mul_u16_sel::$0 ]
@@ -5516,14 +5444,14 @@ Allocated zp ZP_BYTE:8 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
 Allocated zp ZP_BYTE:9 [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ]
 Allocated zp ZP_WORD:10 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 ]
 Allocated zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ]
-Allocated zp ZP_DWORD:14 [ sin16s_gen::x#10 sin16s_gen::x#1 ]
-Allocated zp ZP_WORD:18 [ sin16s_gen::sintab#10 sin16s_gen::sintab#1 ]
-Allocated zp ZP_WORD:20 [ sin16s_gen::i#10 sin16s_gen::i#1 ]
-Allocated zp ZP_BYTE:22 [ sin16s_gen::isUpper#10 ]
-Allocated zp ZP_DWORD:23 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 ]
-Allocated zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 ]
-Allocated zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 ]
-Allocated zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 ]
+Allocated zp ZP_DWORD:14 [ sin16s_gen::x#2 sin16s_gen::x#1 ]
+Allocated zp ZP_WORD:18 [ sin16s_gen::sintab#2 sin16s_gen::sintab#1 ]
+Allocated zp ZP_WORD:20 [ sin16s_gen::i#2 sin16s_gen::i#1 ]
+Allocated zp ZP_BYTE:22 [ sin16s::isUpper#10 ]
+Allocated zp ZP_DWORD:23 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ]
+Allocated zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ]
+Allocated zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 ]
+Allocated zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 ]
 Allocated zp ZP_BYTE:33 [ mul_u16_sel::select#6 ]
 Allocated zp ZP_WORD:34 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ]
 Allocated zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ]
@@ -5538,36 +5466,38 @@ Allocated zp ZP_BYTE:55 [ print_byte::$0 ]
 Allocated zp ZP_BYTE:56 [ print_byte::$2 ]
 Allocated zp ZP_DWORD:57 [ div32u16u::return#0 ]
 Allocated zp ZP_DWORD:61 [ sin16s_gen::step#0 ]
-Allocated zp ZP_DWORD:65 [ sin16s_gen::$7 ]
-Allocated zp ZP_WORD:69 [ sin16s_gen::x1#0 ]
-Allocated zp ZP_WORD:71 [ mul_u16_sel::return#0 ]
-Allocated zp ZP_WORD:73 [ sin16s_gen::x2#0 ]
-Allocated zp ZP_WORD:75 [ mul_u16_sel::return#1 ]
-Allocated zp ZP_WORD:77 [ sin16s_gen::x3#0 ]
-Allocated zp ZP_WORD:79 [ mul_u16_sel::return#10 ]
-Allocated zp ZP_WORD:81 [ sin16s_gen::x3_6#0 ]
-Allocated zp ZP_WORD:83 [ sin16s_gen::usinx#0 ]
-Allocated zp ZP_WORD:85 [ mul_u16_sel::return#11 ]
-Allocated zp ZP_WORD:87 [ sin16s_gen::x4#0 ]
-Allocated zp ZP_WORD:89 [ mul_u16_sel::return#12 ]
-Allocated zp ZP_WORD:91 [ sin16s_gen::x5#0 ]
-Allocated zp ZP_WORD:93 [ mul_u16_sel::return#13 ]
-Allocated zp ZP_WORD:95 [ sin16s_gen::x5_128#0 ]
-Allocated zp ZP_WORD:97 [ sin16s_gen::usinx#1 ]
-Allocated zp ZP_WORD:99 [ mul16u::b#0 ]
-Allocated zp ZP_DWORD:101 [ mul16u::return#2 ]
-Allocated zp ZP_DWORD:105 [ mul_u16_sel::$0 ]
-Allocated zp ZP_DWORD:109 [ mul_u16_sel::$1 ]
-Allocated zp ZP_WORD:113 [ mul_u16_sel::return#14 ]
-Allocated zp ZP_BYTE:115 [ mul16u::$1 ]
-Allocated zp ZP_WORD:116 [ divr16u::return#2 ]
-Allocated zp ZP_WORD:118 [ div32u16u::quotient_hi#0 ]
-Allocated zp ZP_WORD:120 [ divr16u::return#3 ]
-Allocated zp ZP_WORD:122 [ div32u16u::quotient_lo#0 ]
-Allocated zp ZP_DWORD:124 [ div32u16u::return#1 ]
-Allocated zp ZP_BYTE:128 [ divr16u::$1 ]
-Allocated zp ZP_BYTE:129 [ divr16u::$2 ]
-Allocated zp ZP_WORD:130 [ rem16u#1 ]
+Allocated zp ZP_WORD:65 [ sin16s::return#0 ]
+Allocated zp ZP_WORD:67 [ sin16s_gen::$1 ]
+Allocated zp ZP_DWORD:69 [ sin16s::$6 ]
+Allocated zp ZP_WORD:73 [ sin16s::x1#0 ]
+Allocated zp ZP_WORD:75 [ mul_u16_sel::return#0 ]
+Allocated zp ZP_WORD:77 [ sin16s::x2#0 ]
+Allocated zp ZP_WORD:79 [ mul_u16_sel::return#1 ]
+Allocated zp ZP_WORD:81 [ sin16s::x3#0 ]
+Allocated zp ZP_WORD:83 [ mul_u16_sel::return#10 ]
+Allocated zp ZP_WORD:85 [ sin16s::x3_6#0 ]
+Allocated zp ZP_WORD:87 [ sin16s::usinx#0 ]
+Allocated zp ZP_WORD:89 [ mul_u16_sel::return#11 ]
+Allocated zp ZP_WORD:91 [ sin16s::x4#0 ]
+Allocated zp ZP_WORD:93 [ mul_u16_sel::return#12 ]
+Allocated zp ZP_WORD:95 [ sin16s::x5#0 ]
+Allocated zp ZP_WORD:97 [ mul_u16_sel::return#13 ]
+Allocated zp ZP_WORD:99 [ sin16s::x5_128#0 ]
+Allocated zp ZP_WORD:101 [ sin16s::usinx#1 ]
+Allocated zp ZP_WORD:103 [ mul16u::b#0 ]
+Allocated zp ZP_DWORD:105 [ mul16u::return#2 ]
+Allocated zp ZP_DWORD:109 [ mul_u16_sel::$0 ]
+Allocated zp ZP_DWORD:113 [ mul_u16_sel::$1 ]
+Allocated zp ZP_WORD:117 [ mul_u16_sel::return#14 ]
+Allocated zp ZP_BYTE:119 [ mul16u::$1 ]
+Allocated zp ZP_WORD:120 [ divr16u::return#2 ]
+Allocated zp ZP_WORD:122 [ div32u16u::quotient_hi#0 ]
+Allocated zp ZP_WORD:124 [ divr16u::return#3 ]
+Allocated zp ZP_WORD:126 [ div32u16u::quotient_lo#0 ]
+Allocated zp ZP_DWORD:128 [ div32u16u::return#1 ]
+Allocated zp ZP_BYTE:132 [ divr16u::$1 ]
+Allocated zp ZP_BYTE:133 [ divr16u::$2 ]
+Allocated zp ZP_WORD:134 [ rem16u#1 ]
 
 INITIAL ASM
 //SEG0 Basic Upstart
@@ -5579,21 +5509,21 @@ INITIAL ASM
   .const PI2_u4f28 = $6487ed51
   .const PI_u4f28 = $3243f6a9
   .const PI_HALF_u4f28 = $1921fb54
-  .label rem16u = $82
+  .label rem16u = $86
   .label char_cursor = $a
 //SEG2 @begin
 bbegin:
-//SEG3 [1] phi from @begin to @25 [phi:@begin->@25]
-b25_from_bbegin:
-  jmp b25
-//SEG4 @25
-b25:
+//SEG3 [1] phi from @begin to @26 [phi:@begin->@26]
+b26_from_bbegin:
+  jmp b26
+//SEG4 @26
+b26:
 //SEG5 [2] call main param-assignment [ ] ( )
-//SEG6 [4] phi from @25 to main [phi:@25->main]
-main_from_b25:
+//SEG6 [4] phi from @26 to main [phi:@26->main]
+main_from_b26:
   jsr main
-//SEG7 [3] phi from @25 to @end [phi:@25->@end]
-bend_from_b25:
+//SEG7 [3] phi from @26 to @end [phi:@26->@end]
+bend_from_b26:
   jmp bend
 //SEG8 @end
 bend:
@@ -5940,25 +5870,13 @@ print_cls: {
 }
 //SEG122 sin16s_gen
 sin16s_gen: {
-    .label _7 = $41
+    .label _1 = $43
     .label step = $3d
-    .label xp = $17
-    .label x1 = $45
-    .label x2 = $49
-    .label x3 = $4d
-    .label x3_6 = $51
-    .label usinx = $53
-    .label x4 = $57
-    .label x5 = $5b
-    .label x5_128 = $5f
-    .label usinx_1 = $61
     .label sintab = $12
     .label x = $e
     .label i = $14
-    .label sinx = $1b
-    .label isUpper = $16
   //SEG123 [59] call div32u16u param-assignment [ div32u16u::return#1 ] ( main:2::sin16s_gen:5 [ div32u16u::return#1 ] )
-  //SEG124 [131] phi from sin16s_gen to div32u16u [phi:sin16s_gen->div32u16u]
+  //SEG124 [135] phi from sin16s_gen to div32u16u [phi:sin16s_gen->div32u16u]
   div32u16u_from_sin16s_gen:
     jsr div32u16u
   //SEG125 [60] (dword) div32u16u::return#0 ← (dword) div32u16u::return#1 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] ) -- vduz1=vduz2 
@@ -5970,9 +5888,9 @@ sin16s_gen: {
     sta div32u16u.return+2
     lda div32u16u.return_1+3
     sta div32u16u.return+3
-    jmp b9
-  //SEG126 sin16s_gen::@9
-  b9:
+    jmp b3
+  //SEG126 sin16s_gen::@3
+  b3:
   //SEG127 [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#0 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] ) -- vduz1=vduz2 
     lda div32u16u.return
     sta step
@@ -5982,19 +5900,19 @@ sin16s_gen: {
     sta step+2
     lda div32u16u.return+3
     sta step+3
-  //SEG128 [62] phi from sin16s_gen::@9 to sin16s_gen::@1 [phi:sin16s_gen::@9->sin16s_gen::@1]
-  b1_from_b9:
-  //SEG129 [62] phi (word) sin16s_gen::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@9->sin16s_gen::@1#0] -- vwuz1=vbuc1 
+  //SEG128 [62] phi from sin16s_gen::@3 to sin16s_gen::@1 [phi:sin16s_gen::@3->sin16s_gen::@1]
+  b1_from_b3:
+  //SEG129 [62] phi (word) sin16s_gen::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->sin16s_gen::@1#0] -- vwuz1=vbuc1 
     lda #<0
     sta i
     lda #>0
     sta i+1
-  //SEG130 [62] phi (signed word*) sin16s_gen::sintab#10 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@9->sin16s_gen::@1#1] -- pwsz1=pwsc1 
+  //SEG130 [62] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 
     lda #<main.sintab1
     sta sintab
     lda #>main.sintab1
     sta sintab+1
-  //SEG131 [62] phi (dword) sin16s_gen::x#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@9->sin16s_gen::@1#2] -- vduz1=vbuc1 
+  //SEG131 [62] phi (dword) sin16s_gen::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->sin16s_gen::@1#2] -- vduz1=vbuc1 
     lda #0
     sta x
     lda #0
@@ -6004,359 +5922,44 @@ sin16s_gen: {
     jmp b1
   //SEG132 [62] phi from sin16s_gen::@4 to sin16s_gen::@1 [phi:sin16s_gen::@4->sin16s_gen::@1]
   b1_from_b4:
-  //SEG133 [62] phi (word) sin16s_gen::i#10 = (word) sin16s_gen::i#1 [phi:sin16s_gen::@4->sin16s_gen::@1#0] -- register_copy 
-  //SEG134 [62] phi (signed word*) sin16s_gen::sintab#10 = (signed word*) sin16s_gen::sintab#1 [phi:sin16s_gen::@4->sin16s_gen::@1#1] -- register_copy 
-  //SEG135 [62] phi (dword) sin16s_gen::x#10 = (dword) sin16s_gen::x#1 [phi:sin16s_gen::@4->sin16s_gen::@1#2] -- register_copy 
+  //SEG133 [62] phi (word) sin16s_gen::i#2 = (word) sin16s_gen::i#1 [phi:sin16s_gen::@4->sin16s_gen::@1#0] -- register_copy 
+  //SEG134 [62] phi (signed word*) sin16s_gen::sintab#2 = (signed word*) sin16s_gen::sintab#1 [phi:sin16s_gen::@4->sin16s_gen::@1#1] -- register_copy 
+  //SEG135 [62] phi (dword) sin16s_gen::x#2 = (dword) sin16s_gen::x#1 [phi:sin16s_gen::@4->sin16s_gen::@1#2] -- register_copy 
     jmp b1
   //SEG136 sin16s_gen::@1
   b1:
-  //SEG137 [63] if((dword) sin16s_gen::x#10<(const dword) PI_u4f28#0) goto sin16s_gen::@17 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) -- vduz1_lt_vduc1_then_la1 
-    lda x+3
-    cmp #>PI_u4f28>>$10
-    bcc b17
-    bne !+
-    lda x+2
-    cmp #<PI_u4f28>>$10
-    bcc b17
-    bne !+
-    lda x+1
-    cmp #>PI_u4f28
-    bcc b17
-    bne !+
+  //SEG137 [63] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ) -- vduz1=vduz2 
     lda x
-    cmp #<PI_u4f28
-    bcc b17
-  !:
-    jmp b5
-  //SEG138 sin16s_gen::@5
-  b5:
-  //SEG139 [64] (dword) sin16s_gen::xp#1 ← (dword) sin16s_gen::x#10 - (const dword) PI_u4f28#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ) -- vduz1=vduz2_minus_vduc1 
-    lda x
-    sec
-    sbc #<PI_u4f28
-    sta xp
+    sta sin16s.x
     lda x+1
-    sbc #>PI_u4f28
-    sta xp+1
+    sta sin16s.x+1
     lda x+2
-    sbc #<PI_u4f28>>$10
-    sta xp+2
+    sta sin16s.x+2
     lda x+3
-    sbc #>PI_u4f28>>$10
-    sta xp+3
-  //SEG140 [65] phi from sin16s_gen::@5 to sin16s_gen::@2 [phi:sin16s_gen::@5->sin16s_gen::@2]
-  b2_from_b5:
-  //SEG141 [65] phi (byte) sin16s_gen::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@5->sin16s_gen::@2#0] -- vbuz1=vbuc1 
-    lda #1
-    sta isUpper
-  //SEG142 [65] phi (dword) sin16s_gen::xp#3 = (dword) sin16s_gen::xp#1 [phi:sin16s_gen::@5->sin16s_gen::@2#1] -- register_copy 
-    jmp b2
-  //SEG143 sin16s_gen::@2
-  b2:
-  //SEG144 [66] if((dword) sin16s_gen::xp#3<(const dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) -- vduz1_lt_vduc1_then_la1 
-    lda xp+3
-    cmp #>PI_HALF_u4f28>>$10
-    bcc b3_from_b2
-    bne !+
-    lda xp+2
-    cmp #<PI_HALF_u4f28>>$10
-    bcc b3_from_b2
-    bne !+
-    lda xp+1
-    cmp #>PI_HALF_u4f28
-    bcc b3_from_b2
-    bne !+
-    lda xp
-    cmp #<PI_HALF_u4f28
-    bcc b3_from_b2
-  !:
-    jmp b6
-  //SEG145 sin16s_gen::@6
-  b6:
-  //SEG146 [67] (dword) sin16s_gen::xp#2 ← (const dword) PI_u4f28#0 - (dword) sin16s_gen::xp#3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ) -- vduz1=vduc1_minus_vduz1 
-    lda #<PI_u4f28
-    sec
-    sbc xp
-    sta xp
-    lda #>PI_u4f28
-    sbc xp+1
-    sta xp+1
-    lda #<PI_u4f28>>$10
-    sbc xp+2
-    sta xp+2
-    lda #>PI_u4f28>>$10
-    sbc xp+3
-    sta xp+3
-  //SEG147 [68] phi from sin16s_gen::@2 sin16s_gen::@6 to sin16s_gen::@3 [phi:sin16s_gen::@2/sin16s_gen::@6->sin16s_gen::@3]
-  b3_from_b2:
-  b3_from_b6:
-  //SEG148 [68] phi (dword) sin16s_gen::xp#5 = (dword) sin16s_gen::xp#3 [phi:sin16s_gen::@2/sin16s_gen::@6->sin16s_gen::@3#0] -- register_copy 
-    jmp b3
-  //SEG149 sin16s_gen::@3
-  b3:
-  //SEG150 [69] (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ) -- vduz1=vduz2_rol_3 
-    lda xp
-    sta _7
-    lda xp+1
-    sta _7+1
-    lda xp+2
-    sta _7+2
-    lda xp+3
-    sta _7+3
-    asl _7
-    rol _7+1
-    rol _7+2
-    rol _7+3
-    asl _7
-    rol _7+1
-    rol _7+2
-    rol _7+3
-    asl _7
-    rol _7+1
-    rol _7+2
-    rol _7+3
-  //SEG151 [70] (word) sin16s_gen::x1#0 ← > (dword~) sin16s_gen::$7 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ) -- vwuz1=_hi_vduz2 
-    lda _7+2
-    sta x1
-    lda _7+3
-    sta x1+1
-  //SEG152 [71] (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v1
-    lda x1+1
-    sta mul_u16_sel.v1+1
-  //SEG153 [72] (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-  //SEG154 [73] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] )
-  //SEG155 [112] phi from sin16s_gen::@3 to mul_u16_sel [phi:sin16s_gen::@3->mul_u16_sel]
-  mul_u16_sel_from_b3:
-  //SEG156 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->mul_u16_sel#0] -- vbuz1=vbuc1 
-    lda #0
-    sta mul_u16_sel.select
-  //SEG157 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#0 [phi:sin16s_gen::@3->mul_u16_sel#1] -- register_copy 
-  //SEG158 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#0 [phi:sin16s_gen::@3->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG159 [74] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return+1
-    jmp b10
-  //SEG160 sin16s_gen::@10
-  b10:
-  //SEG161 [75] (word) sin16s_gen::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return
-    sta x2
-    lda mul_u16_sel.return+1
-    sta x2+1
-  //SEG162 [76] (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ) -- vwuz1=vwuz2 
-    lda x2
-    sta mul_u16_sel.v1
-    lda x2+1
-    sta mul_u16_sel.v1+1
-  //SEG163 [77] (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-  //SEG164 [78] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] )
-  //SEG165 [112] phi from sin16s_gen::@10 to mul_u16_sel [phi:sin16s_gen::@10->mul_u16_sel]
-  mul_u16_sel_from_b10:
-  //SEG166 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@10->mul_u16_sel#0] -- vbuz1=vbuc1 
-    lda #1
-    sta mul_u16_sel.select
-  //SEG167 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#1 [phi:sin16s_gen::@10->mul_u16_sel#1] -- register_copy 
-  //SEG168 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#1 [phi:sin16s_gen::@10->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG169 [79] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return_1
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return_1+1
-    jmp b11
-  //SEG170 sin16s_gen::@11
-  b11:
-  //SEG171 [80] (word) sin16s_gen::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_1
-    sta x3
-    lda mul_u16_sel.return_1+1
-    sta x3+1
-  //SEG172 [81] (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ) -- vwuz1=vwuz2 
-    lda x3
-    sta mul_u16_sel.v1
-    lda x3+1
-    sta mul_u16_sel.v1+1
-  //SEG173 [82] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] )
-  //SEG174 [112] phi from sin16s_gen::@11 to mul_u16_sel [phi:sin16s_gen::@11->mul_u16_sel]
-  mul_u16_sel_from_b11:
-  //SEG175 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@11->mul_u16_sel#0] -- vbuz1=vbuc1 
-    lda #1
-    sta mul_u16_sel.select
-  //SEG176 [112] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s_gen::@11->mul_u16_sel#1] -- vwuz1=vwuc1 
-    lda #<$10000/6
-    sta mul_u16_sel.v2
-    lda #>$10000/6
-    sta mul_u16_sel.v2+1
-  //SEG177 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#2 [phi:sin16s_gen::@11->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG178 [83] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return_10
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return_10+1
-    jmp b12
-  //SEG179 sin16s_gen::@12
-  b12:
-  //SEG180 [84] (word) sin16s_gen::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_10
-    sta x3_6
-    lda mul_u16_sel.return_10+1
-    sta x3_6+1
-  //SEG181 [85] (word) sin16s_gen::usinx#0 ← (word) sin16s_gen::x1#0 - (word) sin16s_gen::x3_6#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ) -- vwuz1=vwuz2_minus_vwuz3 
-    lda x1
-    sec
-    sbc x3_6
-    sta usinx
-    lda x1+1
-    sbc x3_6+1
-    sta usinx+1
-  //SEG182 [86] (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ) -- vwuz1=vwuz2 
-    lda x3
-    sta mul_u16_sel.v1
-    lda x3+1
-    sta mul_u16_sel.v1+1
-  //SEG183 [87] (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-  //SEG184 [88] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  //SEG185 [112] phi from sin16s_gen::@12 to mul_u16_sel [phi:sin16s_gen::@12->mul_u16_sel]
-  mul_u16_sel_from_b12:
-  //SEG186 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@12->mul_u16_sel#0] -- vbuz1=vbuc1 
-    lda #0
-    sta mul_u16_sel.select
-  //SEG187 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#3 [phi:sin16s_gen::@12->mul_u16_sel#1] -- register_copy 
-  //SEG188 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#3 [phi:sin16s_gen::@12->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG189 [89] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return_11
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return_11+1
-    jmp b13
-  //SEG190 sin16s_gen::@13
-  b13:
-  //SEG191 [90] (word) sin16s_gen::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_11
-    sta x4
-    lda mul_u16_sel.return_11+1
-    sta x4+1
-  //SEG192 [91] (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ) -- vwuz1=vwuz2 
-    lda x4
-    sta mul_u16_sel.v1
-    lda x4+1
-    sta mul_u16_sel.v1+1
-  //SEG193 [92] (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-  //SEG194 [93] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  //SEG195 [112] phi from sin16s_gen::@13 to mul_u16_sel [phi:sin16s_gen::@13->mul_u16_sel]
-  mul_u16_sel_from_b13:
-  //SEG196 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@13->mul_u16_sel#0] -- vbuz1=vbuc1 
-    lda #0
-    sta mul_u16_sel.select
-  //SEG197 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#4 [phi:sin16s_gen::@13->mul_u16_sel#1] -- register_copy 
-  //SEG198 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#4 [phi:sin16s_gen::@13->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG199 [94] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return_12
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return_12+1
-    jmp b14
-  //SEG200 sin16s_gen::@14
-  b14:
-  //SEG201 [95] (word) sin16s_gen::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_12
-    sta x5
-    lda mul_u16_sel.return_12+1
-    sta x5+1
-  //SEG202 [96] (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ) -- vwuz1=vwuz2 
-    lda x5
-    sta mul_u16_sel.v1
-    lda x5+1
-    sta mul_u16_sel.v1+1
-  //SEG203 [97] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  //SEG204 [112] phi from sin16s_gen::@14 to mul_u16_sel [phi:sin16s_gen::@14->mul_u16_sel]
-  mul_u16_sel_from_b14:
-  //SEG205 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:sin16s_gen::@14->mul_u16_sel#0] -- vbuz1=vbuc1 
-    lda #3
-    sta mul_u16_sel.select
-  //SEG206 [112] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 [phi:sin16s_gen::@14->mul_u16_sel#1] -- vwuz1=vwuc1 
-    lda #<$10000/$80
-    sta mul_u16_sel.v2
-    lda #>$10000/$80
-    sta mul_u16_sel.v2+1
-  //SEG207 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#5 [phi:sin16s_gen::@14->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG208 [98] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return_13
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return_13+1
-    jmp b15
-  //SEG209 sin16s_gen::@15
-  b15:
-  //SEG210 [99] (word) sin16s_gen::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_13
-    sta x5_128
-    lda mul_u16_sel.return_13+1
-    sta x5_128+1
-  //SEG211 [100] (word) sin16s_gen::usinx#1 ← (word) sin16s_gen::usinx#0 + (word) sin16s_gen::x5_128#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ) -- vwuz1=vwuz2_plus_vwuz3 
-    lda usinx_1
-    clc
-    adc usinx
-    sta x5_128
-    lda usinx_1+1
-    adc usinx+1
-    sta x5_128+1
-  //SEG212 [101] if((byte) sin16s_gen::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s_gen::@19 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ) -- vbuz1_eq_0_then_la1 
-    lda isUpper
-    beq b19
-    jmp b7
-  //SEG213 sin16s_gen::@7
-  b7:
-  //SEG214 [102] (signed word) sin16s_gen::sinx#1 ← - (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ) -- vwsz1=_neg_vwsz2 
-    sec
-    lda usinx_1
-    eor #$ff
-    adc #0
-    sta sinx
-    lda usinx_1+1
-    eor #$ff
-    adc #0
-    sta sinx+1
-  //SEG215 [103] phi from sin16s_gen::@19 sin16s_gen::@7 to sin16s_gen::@4 [phi:sin16s_gen::@19/sin16s_gen::@7->sin16s_gen::@4]
-  b4_from_b19:
-  b4_from_b7:
-  //SEG216 [103] phi (signed word) sin16s_gen::sinx#2 = (signed word~) sin16s_gen::sinx#3 [phi:sin16s_gen::@19/sin16s_gen::@7->sin16s_gen::@4#0] -- register_copy 
+    sta sin16s.x+3
+  //SEG138 [64] call sin16s param-assignment [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
+    jsr sin16s
+  //SEG139 [65] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ) -- vwsz1=vwsz2 
+    lda sin16s.return_1
+    sta sin16s.return
+    lda sin16s.return_1+1
+    sta sin16s.return+1
     jmp b4
-  //SEG217 sin16s_gen::@4
+  //SEG140 sin16s_gen::@4
   b4:
-  //SEG218 [104] *((signed word*) sin16s_gen::sintab#10) ← (signed word) sin16s_gen::sinx#2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) -- _deref_pwsz1=vwsz2 
+  //SEG141 [66] (signed word~) sin16s_gen::$1 ← (signed word) sin16s::return#0 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] ) -- vwsz1=vwsz2 
+    lda sin16s.return
+    sta _1
+    lda sin16s.return+1
+    sta _1+1
+  //SEG142 [67] *((signed word*) sin16s_gen::sintab#2) ← (signed word~) sin16s_gen::$1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ) -- _deref_pwsz1=vwsz2 
     ldy #0
-    lda sinx
+    lda _1
     sta (sintab),y
     iny
-    lda sinx+1
+    lda _1+1
     sta (sintab),y
-  //SEG219 [105] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ) -- pwsz1=pwsz1_plus_vbuc1 
+  //SEG143 [68] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] ) -- pwsz1=pwsz1_plus_vbuc1 
     clc
     lda sintab
     adc #<2
@@ -6364,7 +5967,7 @@ sin16s_gen: {
     lda sintab+1
     adc #>2
     sta sintab+1
-  //SEG220 [106] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#10 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) -- vduz1=vduz1_plus_vduz2 
+  //SEG144 [69] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#2 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) -- vduz1=vduz1_plus_vduz2 
     lda x
     clc
     adc step
@@ -6378,12 +5981,12 @@ sin16s_gen: {
     lda x+3
     adc step+3
     sta x+3
-  //SEG221 [107] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#10 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) -- vwuz1=_inc_vwuz1 
+  //SEG145 [70] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#2 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) -- vwuz1=_inc_vwuz1 
     inc i
     bne !+
     inc i+1
   !:
-  //SEG222 [108] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) -- vwuz1_lt_vwuc1_then_la1 
+  //SEG146 [71] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) -- vwuz1_lt_vwuc1_then_la1 
     lda i+1
     cmp #>main.wavelength
     bcc b1_from_b4
@@ -6393,64 +5996,416 @@ sin16s_gen: {
     bcc b1_from_b4
   !:
     jmp breturn
-  //SEG223 sin16s_gen::@return
+  //SEG147 sin16s_gen::@return
   breturn:
-  //SEG224 [109] return  [ ] ( main:2::sin16s_gen:5 [ ] )
+  //SEG148 [72] return  [ ] ( main:2::sin16s_gen:5 [ ] )
     rts
-  //SEG225 sin16s_gen::@19
-  b19:
-  //SEG226 [110] (signed word~) sin16s_gen::sinx#3 ← (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ) -- vwsz1=vwsz2 
-    lda usinx_1
-    sta sinx
-    lda usinx_1+1
-    sta sinx+1
-    jmp b4_from_b19
-  //SEG227 sin16s_gen::@17
-  b17:
-  //SEG228 [111] (dword~) sin16s_gen::xp#7 ← (dword) sin16s_gen::x#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ) -- vduz1=vduz2 
-    lda x
-    sta xp
-    lda x+1
-    sta xp+1
-    lda x+2
-    sta xp+2
+}
+//SEG149 sin16s
+sin16s: {
+    .label _6 = $45
+    .label x = $17
+    .label return = $41
+    .label x1 = $49
+    .label x2 = $4d
+    .label x3 = $51
+    .label x3_6 = $55
+    .label usinx = $57
+    .label x4 = $5b
+    .label x5 = $5f
+    .label x5_128 = $63
+    .label usinx_1 = $65
+    .label return_1 = $1b
+    .label sinx = $1b
+    .label isUpper = $16
+    .label return_5 = $1b
+  //SEG150 [73] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ) -- vduz1_lt_vduc1_then_la1 
     lda x+3
-    sta xp+3
-  //SEG229 [65] phi from sin16s_gen::@17 to sin16s_gen::@2 [phi:sin16s_gen::@17->sin16s_gen::@2]
-  b2_from_b17:
-  //SEG230 [65] phi (byte) sin16s_gen::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@17->sin16s_gen::@2#0] -- vbuz1=vbuc1 
+    cmp #>PI_u4f28>>$10
+    bcc b1_from_sin16s
+    bne !+
+    lda x+2
+    cmp #<PI_u4f28>>$10
+    bcc b1_from_sin16s
+    bne !+
+    lda x+1
+    cmp #>PI_u4f28
+    bcc b1_from_sin16s
+    bne !+
+    lda x
+    cmp #<PI_u4f28
+    bcc b1_from_sin16s
+  !:
+    jmp b4
+  //SEG151 sin16s::@4
+  b4:
+  //SEG152 [74] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#1 ] ) -- vduz1=vduz1_minus_vduc1 
+    lda x
+    sec
+    sbc #<PI_u4f28
+    sta x
+    lda x+1
+    sbc #>PI_u4f28
+    sta x+1
+    lda x+2
+    sbc #<PI_u4f28>>$10
+    sta x+2
+    lda x+3
+    sbc #>PI_u4f28>>$10
+    sta x+3
+  //SEG153 [75] phi from sin16s::@4 to sin16s::@1 [phi:sin16s::@4->sin16s::@1]
+  b1_from_b4:
+  //SEG154 [75] phi (byte) sin16s::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@4->sin16s::@1#0] -- vbuz1=vbuc1 
+    lda #1
+    sta isUpper
+  //SEG155 [75] phi (dword) sin16s::x#4 = (dword) sin16s::x#1 [phi:sin16s::@4->sin16s::@1#1] -- register_copy 
+    jmp b1
+  //SEG156 [75] phi from sin16s to sin16s::@1 [phi:sin16s->sin16s::@1]
+  b1_from_sin16s:
+  //SEG157 [75] phi (byte) sin16s::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s->sin16s::@1#0] -- vbuz1=vbuc1 
     lda #0
     sta isUpper
-  //SEG231 [65] phi (dword) sin16s_gen::xp#3 = (dword~) sin16s_gen::xp#7 [phi:sin16s_gen::@17->sin16s_gen::@2#1] -- register_copy 
+  //SEG158 [75] phi (dword) sin16s::x#4 = (dword) sin16s::x#0 [phi:sin16s->sin16s::@1#1] -- register_copy 
+    jmp b1
+  //SEG159 sin16s::@1
+  b1:
+  //SEG160 [76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#4 sin16s::isUpper#10 ] ) -- vduz1_lt_vduc1_then_la1 
+    lda x+3
+    cmp #>PI_HALF_u4f28>>$10
+    bcc b2_from_b1
+    bne !+
+    lda x+2
+    cmp #<PI_HALF_u4f28>>$10
+    bcc b2_from_b1
+    bne !+
+    lda x+1
+    cmp #>PI_HALF_u4f28
+    bcc b2_from_b1
+    bne !+
+    lda x
+    cmp #<PI_HALF_u4f28
+    bcc b2_from_b1
+  !:
+    jmp b5
+  //SEG161 sin16s::@5
+  b5:
+  //SEG162 [77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#10 sin16s::x#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x#2 ] ) -- vduz1=vduc1_minus_vduz1 
+    lda #<PI_u4f28
+    sec
+    sbc x
+    sta x
+    lda #>PI_u4f28
+    sbc x+1
+    sta x+1
+    lda #<PI_u4f28>>$10
+    sbc x+2
+    sta x+2
+    lda #>PI_u4f28>>$10
+    sbc x+3
+    sta x+3
+  //SEG163 [78] phi from sin16s::@1 sin16s::@5 to sin16s::@2 [phi:sin16s::@1/sin16s::@5->sin16s::@2]
+  b2_from_b1:
+  b2_from_b5:
+  //SEG164 [78] phi (dword) sin16s::x#6 = (dword) sin16s::x#4 [phi:sin16s::@1/sin16s::@5->sin16s::@2#0] -- register_copy 
     jmp b2
+  //SEG165 sin16s::@2
+  b2:
+  //SEG166 [79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#10 sin16s::$6 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::$6 ] ) -- vduz1=vduz2_rol_3 
+    lda x
+    sta _6
+    lda x+1
+    sta _6+1
+    lda x+2
+    sta _6+2
+    lda x+3
+    sta _6+3
+    asl _6
+    rol _6+1
+    rol _6+2
+    rol _6+3
+    asl _6
+    rol _6+1
+    rol _6+2
+    rol _6+3
+    asl _6
+    rol _6+1
+    rol _6+2
+    rol _6+3
+  //SEG167 [80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#10 sin16s::x1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 ] ) -- vwuz1=_hi_vduz2 
+    lda _6+2
+    sta x1
+    lda _6+3
+    sta x1+1
+  //SEG168 [81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v1
+    lda x1+1
+    sta mul_u16_sel.v1+1
+  //SEG169 [82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+  //SEG170 [83] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] )
+  //SEG171 [116] phi from sin16s::@2 to mul_u16_sel [phi:sin16s::@2->mul_u16_sel]
+  mul_u16_sel_from_b2:
+  //SEG172 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@2->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #0
+    sta mul_u16_sel.select
+  //SEG173 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#0 [phi:sin16s::@2->mul_u16_sel#1] -- register_copy 
+  //SEG174 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#0 [phi:sin16s::@2->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG175 [84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#0 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return+1
+    jmp b8
+  //SEG176 sin16s::@8
+  b8:
+  //SEG177 [85] (word) sin16s::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x2#0 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return
+    sta x2
+    lda mul_u16_sel.return+1
+    sta x2+1
+  //SEG178 [86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ) -- vwuz1=vwuz2 
+    lda x2
+    sta mul_u16_sel.v1
+    lda x2+1
+    sta mul_u16_sel.v1+1
+  //SEG179 [87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+  //SEG180 [88] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] )
+  //SEG181 [116] phi from sin16s::@8 to mul_u16_sel [phi:sin16s::@8->mul_u16_sel]
+  mul_u16_sel_from_b8:
+  //SEG182 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@8->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #1
+    sta mul_u16_sel.select
+  //SEG183 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#1 [phi:sin16s::@8->mul_u16_sel#1] -- register_copy 
+  //SEG184 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#1 [phi:sin16s::@8->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG185 [89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#1 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return_1
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return_1+1
+    jmp b9
+  //SEG186 sin16s::@9
+  b9:
+  //SEG187 [90] (word) sin16s::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_1
+    sta x3
+    lda mul_u16_sel.return_1+1
+    sta x3+1
+  //SEG188 [91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ) -- vwuz1=vwuz2 
+    lda x3
+    sta mul_u16_sel.v1
+    lda x3+1
+    sta mul_u16_sel.v1+1
+  //SEG189 [92] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] )
+  //SEG190 [116] phi from sin16s::@9 to mul_u16_sel [phi:sin16s::@9->mul_u16_sel]
+  mul_u16_sel_from_b9:
+  //SEG191 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #1
+    sta mul_u16_sel.select
+  //SEG192 [116] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mul_u16_sel#1] -- vwuz1=vwuc1 
+    lda #<$10000/6
+    sta mul_u16_sel.v2
+    lda #>$10000/6
+    sta mul_u16_sel.v2+1
+  //SEG193 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#2 [phi:sin16s::@9->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG194 [93] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return_10
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return_10+1
+    jmp b10
+  //SEG195 sin16s::@10
+  b10:
+  //SEG196 [94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_10
+    sta x3_6
+    lda mul_u16_sel.return_10+1
+    sta x3_6+1
+  //SEG197 [95] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ) -- vwuz1=vwuz2_minus_vwuz3 
+    lda x1
+    sec
+    sbc x3_6
+    sta usinx
+    lda x1+1
+    sbc x3_6+1
+    sta usinx+1
+  //SEG198 [96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ) -- vwuz1=vwuz2 
+    lda x3
+    sta mul_u16_sel.v1
+    lda x3+1
+    sta mul_u16_sel.v1+1
+  //SEG199 [97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+  //SEG200 [98] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  //SEG201 [116] phi from sin16s::@10 to mul_u16_sel [phi:sin16s::@10->mul_u16_sel]
+  mul_u16_sel_from_b10:
+  //SEG202 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@10->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #0
+    sta mul_u16_sel.select
+  //SEG203 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#3 [phi:sin16s::@10->mul_u16_sel#1] -- register_copy 
+  //SEG204 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#3 [phi:sin16s::@10->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG205 [99] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return_11
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return_11+1
+    jmp b11
+  //SEG206 sin16s::@11
+  b11:
+  //SEG207 [100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_11
+    sta x4
+    lda mul_u16_sel.return_11+1
+    sta x4+1
+  //SEG208 [101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ) -- vwuz1=vwuz2 
+    lda x4
+    sta mul_u16_sel.v1
+    lda x4+1
+    sta mul_u16_sel.v1+1
+  //SEG209 [102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+  //SEG210 [103] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  //SEG211 [116] phi from sin16s::@11 to mul_u16_sel [phi:sin16s::@11->mul_u16_sel]
+  mul_u16_sel_from_b11:
+  //SEG212 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@11->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #0
+    sta mul_u16_sel.select
+  //SEG213 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#4 [phi:sin16s::@11->mul_u16_sel#1] -- register_copy 
+  //SEG214 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#4 [phi:sin16s::@11->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG215 [104] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return_12
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return_12+1
+    jmp b12
+  //SEG216 sin16s::@12
+  b12:
+  //SEG217 [105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5#0 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_12
+    sta x5
+    lda mul_u16_sel.return_12+1
+    sta x5+1
+  //SEG218 [106] (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ) -- vwuz1=vwuz2 
+    lda x5
+    sta mul_u16_sel.v1
+    lda x5+1
+    sta mul_u16_sel.v1+1
+  //SEG219 [107] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  //SEG220 [116] phi from sin16s::@12 to mul_u16_sel [phi:sin16s::@12->mul_u16_sel]
+  mul_u16_sel_from_b12:
+  //SEG221 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:sin16s::@12->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #3
+    sta mul_u16_sel.select
+  //SEG222 [116] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 [phi:sin16s::@12->mul_u16_sel#1] -- vwuz1=vwuc1 
+    lda #<$10000/$80
+    sta mul_u16_sel.v2
+    lda #>$10000/$80
+    sta mul_u16_sel.v2+1
+  //SEG223 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#5 [phi:sin16s::@12->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG224 [108] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return_13
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return_13+1
+    jmp b13
+  //SEG225 sin16s::@13
+  b13:
+  //SEG226 [109] (word) sin16s::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5_128#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5_128#0 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_13
+    sta x5_128
+    lda mul_u16_sel.return_13+1
+    sta x5_128+1
+  //SEG227 [110] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#10 sin16s::usinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#1 ] ) -- vwuz1=vwuz2_plus_vwuz3 
+    lda usinx_1
+    clc
+    adc usinx
+    sta x5_128
+    lda usinx_1+1
+    adc usinx+1
+    sta x5_128+1
+  //SEG228 [111] if((byte) sin16s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@16 [ sin16s::usinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::usinx#1 ] ) -- vbuz1_eq_0_then_la1 
+    lda isUpper
+    beq b16
+    jmp b6
+  //SEG229 sin16s::@6
+  b6:
+  //SEG230 [112] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::sinx#1 ] ) -- vwsz1=_neg_vwsz2 
+    sec
+    lda usinx_1
+    eor #$ff
+    adc #0
+    sta sinx
+    lda usinx_1+1
+    eor #$ff
+    adc #0
+    sta sinx+1
+  //SEG231 [113] phi from sin16s::@16 sin16s::@6 to sin16s::@3 [phi:sin16s::@16/sin16s::@6->sin16s::@3]
+  b3_from_b16:
+  b3_from_b6:
+  //SEG232 [113] phi (signed word) sin16s::return#1 = (signed word~) sin16s::return#5 [phi:sin16s::@16/sin16s::@6->sin16s::@3#0] -- register_copy 
+    jmp b3
+  //SEG233 sin16s::@3
+  b3:
+    jmp breturn
+  //SEG234 sin16s::@return
+  breturn:
+  //SEG235 [114] return  [ sin16s::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
+    rts
+  //SEG236 sin16s::@16
+  b16:
+  //SEG237 [115] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1 [ sin16s::return#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#5 ] ) -- vwsz1=vwsz2 
+    lda usinx_1
+    sta return_5
+    lda usinx_1+1
+    sta return_5+1
+    jmp b3_from_b16
 }
-//SEG232 mul_u16_sel
+//SEG238 mul_u16_sel
 mul_u16_sel: {
-    .label _0 = $69
-    .label _1 = $6d
+    .label _0 = $6d
+    .label _1 = $71
     .label v1 = $1d
     .label v2 = $1f
-    .label return = $47
-    .label return_1 = $4b
-    .label return_10 = $4f
-    .label return_11 = $55
-    .label return_12 = $59
-    .label return_13 = $5d
+    .label return = $4b
+    .label return_1 = $4f
+    .label return_10 = $53
+    .label return_11 = $59
+    .label return_12 = $5d
+    .label return_13 = $61
     .label select = $21
-    .label return_14 = $71
-  //SEG233 [113] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) -- vwuz1=vwuz2 
+    .label return_14 = $75
+  //SEG239 [117] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) -- vwuz1=vwuz2 
     lda v1
     sta mul16u.a
     lda v1+1
     sta mul16u.a+1
-  //SEG234 [114] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) -- vwuz1=vwuz2 
+  //SEG240 [118] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) -- vwuz1=vwuz2 
     lda v2
     sta mul16u.b
     lda v2+1
     sta mul16u.b+1
-  //SEG235 [115] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
+  //SEG241 [119] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
     jsr mul16u
-  //SEG236 [116] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) -- vduz1=vduz2 
+  //SEG242 [120] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) -- vduz1=vduz2 
     lda mul16u.res
     sta mul16u.return
     lda mul16u.res+1
@@ -6460,9 +6415,9 @@ mul_u16_sel: {
     lda mul16u.res+3
     sta mul16u.return+3
     jmp b2
-  //SEG237 mul_u16_sel::@2
+  //SEG243 mul_u16_sel::@2
   b2:
-  //SEG238 [117] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) -- vduz1=vduz2 
+  //SEG244 [121] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) -- vduz1=vduz2 
     lda mul16u.return
     sta _0
     lda mul16u.return+1
@@ -6471,7 +6426,7 @@ mul_u16_sel: {
     sta _0+2
     lda mul16u.return+3
     sta _0+3
-  //SEG239 [118] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] ) -- vduz1=vduz2_rol_vbuz3 
+  //SEG245 [122] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] ) -- vduz1=vduz2_rol_vbuz3 
     lda _0
     sta _1
     lda _0+1
@@ -6490,26 +6445,26 @@ mul_u16_sel: {
     dey
     bne !-
   !e:
-  //SEG240 [119] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) -- vwuz1=_hi_vduz2 
+  //SEG246 [123] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) -- vwuz1=_hi_vduz2 
     lda _1+2
     sta return_14
     lda _1+3
     sta return_14+1
     jmp breturn
-  //SEG241 mul_u16_sel::@return
+  //SEG247 mul_u16_sel::@return
   breturn:
-  //SEG242 [120] return  [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] )
+  //SEG248 [124] return  [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] )
     rts
 }
-//SEG243 mul16u
+//SEG249 mul16u
 mul16u: {
-    .label _1 = $73
+    .label _1 = $77
     .label mb = $28
     .label a = $22
     .label res = $24
-    .label b = $63
-    .label return = $65
-  //SEG244 [121] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) -- vduz1=_dword_vwuz2 
+    .label b = $67
+    .label return = $69
+  //SEG250 [125] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) -- vduz1=_dword_vwuz2 
     lda b
     sta mb
     lda b+1
@@ -6517,43 +6472,43 @@ mul16u: {
     lda #0
     sta mb+2
     sta mb+3
-  //SEG245 [122] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1]
+  //SEG251 [126] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1]
   b1_from_mul16u:
-  //SEG246 [122] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#0 [phi:mul16u->mul16u::@1#0] -- register_copy 
-  //SEG247 [122] phi (dword) mul16u::res#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16u->mul16u::@1#1] -- vduz1=vbuc1 
+  //SEG252 [126] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#0 [phi:mul16u->mul16u::@1#0] -- register_copy 
+  //SEG253 [126] phi (dword) mul16u::res#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16u->mul16u::@1#1] -- vduz1=vbuc1 
     lda #0
     sta res
     lda #0
     sta res+1
     sta res+2
     sta res+3
-  //SEG248 [122] phi (word) mul16u::a#2 = (word) mul16u::a#1 [phi:mul16u->mul16u::@1#2] -- register_copy 
+  //SEG254 [126] phi (word) mul16u::a#2 = (word) mul16u::a#1 [phi:mul16u->mul16u::@1#2] -- register_copy 
     jmp b1
-  //SEG249 mul16u::@1
+  //SEG255 mul16u::@1
   b1:
-  //SEG250 [123] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vwuz1_neq_0_then_la1 
+  //SEG256 [127] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vwuz1_neq_0_then_la1 
     lda a
     bne b2
     lda a+1
     bne b2
     jmp breturn
-  //SEG251 mul16u::@return
+  //SEG257 mul16u::@return
   breturn:
-  //SEG252 [124] return  [ mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
+  //SEG258 [128] return  [ mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
     rts
-  //SEG253 mul16u::@2
+  //SEG259 mul16u::@2
   b2:
-  //SEG254 [125] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) -- vbuz1=vwuz2_band_vbuc1 
+  //SEG260 [129] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) -- vbuz1=vwuz2_band_vbuc1 
     lda a
     and #1
     sta _1
-  //SEG255 [126] if((byte~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vbuz1_eq_0_then_la1 
+  //SEG261 [130] if((byte~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vbuz1_eq_0_then_la1 
     lda _1
     beq b4_from_b2
     jmp b7
-  //SEG256 mul16u::@7
+  //SEG262 mul16u::@7
   b7:
-  //SEG257 [127] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) -- vduz1=vduz1_plus_vduz2 
+  //SEG263 [131] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) -- vduz1=vduz1_plus_vduz2 
     lda res
     clc
     adc mb
@@ -6567,101 +6522,101 @@ mul16u: {
     lda res+3
     adc mb+3
     sta res+3
-  //SEG258 [128] phi from mul16u::@2 mul16u::@7 to mul16u::@4 [phi:mul16u::@2/mul16u::@7->mul16u::@4]
+  //SEG264 [132] phi from mul16u::@2 mul16u::@7 to mul16u::@4 [phi:mul16u::@2/mul16u::@7->mul16u::@4]
   b4_from_b2:
   b4_from_b7:
-  //SEG259 [128] phi (dword) mul16u::res#6 = (dword) mul16u::res#2 [phi:mul16u::@2/mul16u::@7->mul16u::@4#0] -- register_copy 
+  //SEG265 [132] phi (dword) mul16u::res#6 = (dword) mul16u::res#2 [phi:mul16u::@2/mul16u::@7->mul16u::@4#0] -- register_copy 
     jmp b4
-  //SEG260 mul16u::@4
+  //SEG266 mul16u::@4
   b4:
-  //SEG261 [129] (word) mul16u::a#0 ← (word) mul16u::a#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) -- vwuz1=vwuz1_ror_1 
+  //SEG267 [133] (word) mul16u::a#0 ← (word) mul16u::a#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) -- vwuz1=vwuz1_ror_1 
     clc
     ror a+1
     ror a
-  //SEG262 [130] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) -- vduz1=vduz1_rol_1 
+  //SEG268 [134] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) -- vduz1=vduz1_rol_1 
     asl mb
     rol mb+1
     rol mb+2
     rol mb+3
-  //SEG263 [122] phi from mul16u::@4 to mul16u::@1 [phi:mul16u::@4->mul16u::@1]
+  //SEG269 [126] phi from mul16u::@4 to mul16u::@1 [phi:mul16u::@4->mul16u::@1]
   b1_from_b4:
-  //SEG264 [122] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#1 [phi:mul16u::@4->mul16u::@1#0] -- register_copy 
-  //SEG265 [122] phi (dword) mul16u::res#2 = (dword) mul16u::res#6 [phi:mul16u::@4->mul16u::@1#1] -- register_copy 
-  //SEG266 [122] phi (word) mul16u::a#2 = (word) mul16u::a#0 [phi:mul16u::@4->mul16u::@1#2] -- register_copy 
+  //SEG270 [126] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#1 [phi:mul16u::@4->mul16u::@1#0] -- register_copy 
+  //SEG271 [126] phi (dword) mul16u::res#2 = (dword) mul16u::res#6 [phi:mul16u::@4->mul16u::@1#1] -- register_copy 
+  //SEG272 [126] phi (word) mul16u::a#2 = (word) mul16u::a#0 [phi:mul16u::@4->mul16u::@1#2] -- register_copy 
     jmp b1
 }
-//SEG267 div32u16u
+//SEG273 div32u16u
 div32u16u: {
     .label return = $39
-    .label quotient_hi = $76
-    .label quotient_lo = $7a
-    .label return_1 = $7c
-  //SEG268 [132] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] )
-  //SEG269 [141] phi from div32u16u to divr16u [phi:div32u16u->divr16u]
+    .label quotient_hi = $7a
+    .label quotient_lo = $7e
+    .label return_1 = $80
+  //SEG274 [136] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] )
+  //SEG275 [145] phi from div32u16u to divr16u [phi:div32u16u->divr16u]
   divr16u_from_div32u16u:
-  //SEG270 [141] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 
+  //SEG276 [145] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 
     lda #<main.wavelength
     sta divr16u.divisor
     lda #>main.wavelength
     sta divr16u.divisor+1
-  //SEG271 [141] phi (word) divr16u::dividend#5 = >(const dword) PI2_u4f28#0 [phi:div32u16u->divr16u#1] -- vwuz1=vwuc1 
+  //SEG277 [145] phi (word) divr16u::dividend#5 = >(const dword) PI2_u4f28#0 [phi:div32u16u->divr16u#1] -- vwuz1=vwuc1 
     lda #<PI2_u4f28>>16
     sta divr16u.dividend
     lda #>PI2_u4f28>>16
     sta divr16u.dividend+1
-  //SEG272 [141] phi (word) divr16u::rem#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div32u16u->divr16u#2] -- vwuz1=vbuc1 
+  //SEG278 [145] phi (word) divr16u::rem#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div32u16u->divr16u#2] -- vwuz1=vbuc1 
     lda #<0
     sta divr16u.rem
     lda #>0
     sta divr16u.rem+1
     jsr divr16u
-  //SEG273 [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) -- vwuz1=vwuz2 
+  //SEG279 [137] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) -- vwuz1=vwuz2 
     lda divr16u.return
     sta divr16u.return_2
     lda divr16u.return+1
     sta divr16u.return_2+1
     jmp b2
-  //SEG274 div32u16u::@2
+  //SEG280 div32u16u::@2
   b2:
-  //SEG275 [134] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) -- vwuz1=vwuz2 
+  //SEG281 [138] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) -- vwuz1=vwuz2 
     lda divr16u.return_2
     sta quotient_hi
     lda divr16u.return_2+1
     sta quotient_hi+1
-  //SEG276 [135] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) -- vwuz1=vwuz2 
+  //SEG282 [139] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) -- vwuz1=vwuz2 
     lda rem16u
     sta divr16u.rem
     lda rem16u+1
     sta divr16u.rem+1
-  //SEG277 [136] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] )
-  //SEG278 [141] phi from div32u16u::@2 to divr16u [phi:div32u16u::@2->divr16u]
+  //SEG283 [140] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] )
+  //SEG284 [145] phi from div32u16u::@2 to divr16u [phi:div32u16u::@2->divr16u]
   divr16u_from_b2:
-  //SEG279 [141] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u::@2->divr16u#0] -- vwuz1=vwuc1 
+  //SEG285 [145] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u::@2->divr16u#0] -- vwuz1=vwuc1 
     lda #<main.wavelength
     sta divr16u.divisor
     lda #>main.wavelength
     sta divr16u.divisor+1
-  //SEG280 [141] phi (word) divr16u::dividend#5 = <(const dword) PI2_u4f28#0 [phi:div32u16u::@2->divr16u#1] -- vwuz1=vwuc1 
+  //SEG286 [145] phi (word) divr16u::dividend#5 = <(const dword) PI2_u4f28#0 [phi:div32u16u::@2->divr16u#1] -- vwuz1=vwuc1 
     lda #<PI2_u4f28&$ffff
     sta divr16u.dividend
     lda #>PI2_u4f28&$ffff
     sta divr16u.dividend+1
-  //SEG281 [141] phi (word) divr16u::rem#10 = (word) divr16u::rem#4 [phi:div32u16u::@2->divr16u#2] -- register_copy 
+  //SEG287 [145] phi (word) divr16u::rem#10 = (word) divr16u::rem#4 [phi:div32u16u::@2->divr16u#2] -- register_copy 
     jsr divr16u
-  //SEG282 [137] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) -- vwuz1=vwuz2 
+  //SEG288 [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) -- vwuz1=vwuz2 
     lda divr16u.return
     sta divr16u.return_3
     lda divr16u.return+1
     sta divr16u.return_3+1
     jmp b3
-  //SEG283 div32u16u::@3
+  //SEG289 div32u16u::@3
   b3:
-  //SEG284 [138] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) -- vwuz1=vwuz2 
+  //SEG290 [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) -- vwuz1=vwuz2 
     lda divr16u.return_3
     sta quotient_lo
     lda divr16u.return_3+1
     sta quotient_lo+1
-  //SEG285 [139] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) -- vduz1=vwuz2_dword_vwuz3 
+  //SEG291 [143] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) -- vduz1=vwuz2_dword_vwuz3 
     lda quotient_hi
     sta return_1+2
     lda quotient_hi+1
@@ -6671,79 +6626,79 @@ div32u16u: {
     lda quotient_lo+1
     sta return_1+1
     jmp breturn
-  //SEG286 div32u16u::@return
+  //SEG292 div32u16u::@return
   breturn:
-  //SEG287 [140] return  [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
+  //SEG293 [144] return  [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
     rts
 }
-//SEG288 divr16u
+//SEG294 divr16u
 divr16u: {
-    .label _1 = $80
-    .label _2 = $81
+    .label _1 = $84
+    .label _2 = $85
     .label rem = $2e
     .label dividend = $30
     .label quotient = $32
     .label i = $34
     .label return = $32
-    .label return_2 = $74
-    .label return_3 = $78
+    .label return_2 = $78
+    .label return_3 = $7c
     .label divisor = $2c
-  //SEG289 [142] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1]
+  //SEG295 [146] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1]
   b1_from_divr16u:
-  //SEG290 [142] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuz1=vbuc1 
+  //SEG296 [146] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuz1=vbuc1 
     lda #0
     sta i
-  //SEG291 [142] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1 
+  //SEG297 [146] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1 
     lda #<0
     sta quotient
     lda #>0
     sta quotient+1
-  //SEG292 [142] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#5 [phi:divr16u->divr16u::@1#2] -- register_copy 
-  //SEG293 [142] phi (word) divr16u::rem#5 = (word) divr16u::rem#10 [phi:divr16u->divr16u::@1#3] -- register_copy 
+  //SEG298 [146] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#5 [phi:divr16u->divr16u::@1#2] -- register_copy 
+  //SEG299 [146] phi (word) divr16u::rem#5 = (word) divr16u::rem#10 [phi:divr16u->divr16u::@1#3] -- register_copy 
     jmp b1
-  //SEG294 [142] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1]
+  //SEG300 [146] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1]
   b1_from_b3:
-  //SEG295 [142] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy 
-  //SEG296 [142] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy 
-  //SEG297 [142] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy 
-  //SEG298 [142] phi (word) divr16u::rem#5 = (word) divr16u::rem#11 [phi:divr16u::@3->divr16u::@1#3] -- register_copy 
+  //SEG301 [146] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy 
+  //SEG302 [146] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy 
+  //SEG303 [146] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy 
+  //SEG304 [146] phi (word) divr16u::rem#5 = (word) divr16u::rem#11 [phi:divr16u::@3->divr16u::@1#3] -- register_copy 
     jmp b1
-  //SEG299 divr16u::@1
+  //SEG305 divr16u::@1
   b1:
-  //SEG300 [143] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vwuz1=vwuz1_rol_1 
+  //SEG306 [147] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vwuz1=vwuz1_rol_1 
     asl rem
     rol rem+1
-  //SEG301 [144] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) -- vbuz1=_hi_vwuz2 
+  //SEG307 [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) -- vbuz1=_hi_vwuz2 
     lda dividend+1
     sta _1
-  //SEG302 [145] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) -- vbuz1=vbuz2_band_vbuc1 
+  //SEG308 [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) -- vbuz1=vbuz2_band_vbuc1 
     lda #$80
     and _1
     sta _2
-  //SEG303 [146] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vbuz1_eq_0_then_la1 
+  //SEG309 [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vbuz1_eq_0_then_la1 
     lda _2
     beq b2_from_b1
     jmp b4
-  //SEG304 divr16u::@4
+  //SEG310 divr16u::@4
   b4:
-  //SEG305 [147] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) -- vwuz1=vwuz1_bor_vbuc1 
+  //SEG311 [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) -- vwuz1=vwuz1_bor_vbuc1 
     lda #1
     ora rem
     sta rem
-  //SEG306 [148] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2]
+  //SEG312 [152] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2]
   b2_from_b1:
   b2_from_b4:
-  //SEG307 [148] phi (word) divr16u::rem#6 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy 
+  //SEG313 [152] phi (word) divr16u::rem#6 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy 
     jmp b2
-  //SEG308 divr16u::@2
+  //SEG314 divr16u::@2
   b2:
-  //SEG309 [149] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) -- vwuz1=vwuz1_rol_1 
+  //SEG315 [153] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) -- vwuz1=vwuz1_rol_1 
     asl dividend
     rol dividend+1
-  //SEG310 [150] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1=vwuz1_rol_1 
+  //SEG316 [154] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1=vwuz1_rol_1 
     asl quotient
     rol quotient+1
-  //SEG311 [151] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1_lt_vwuz2_then_la1 
+  //SEG317 [155] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1_lt_vwuz2_then_la1 
     lda rem+1
     cmp divisor+1
     bcc b3_from_b2
@@ -6753,14 +6708,14 @@ divr16u: {
     bcc b3_from_b2
   !:
     jmp b5
-  //SEG312 divr16u::@5
+  //SEG318 divr16u::@5
   b5:
-  //SEG313 [152] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) -- vwuz1=_inc_vwuz1 
+  //SEG319 [156] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) -- vwuz1=_inc_vwuz1 
     inc quotient
     bne !+
     inc quotient+1
   !:
-  //SEG314 [153] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) -- vwuz1=vwuz1_minus_vwuz2 
+  //SEG320 [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) -- vwuz1=vwuz1_minus_vwuz2 
     lda rem
     sec
     sbc divisor
@@ -6768,32 +6723,32 @@ divr16u: {
     lda rem+1
     sbc divisor+1
     sta rem+1
-  //SEG315 [154] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3]
+  //SEG321 [158] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3]
   b3_from_b2:
   b3_from_b5:
-  //SEG316 [154] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy 
-  //SEG317 [154] phi (word) divr16u::rem#11 = (word) divr16u::rem#6 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy 
+  //SEG322 [158] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy 
+  //SEG323 [158] phi (word) divr16u::rem#11 = (word) divr16u::rem#6 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy 
     jmp b3
-  //SEG318 divr16u::@3
+  //SEG324 divr16u::@3
   b3:
-  //SEG319 [155] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuz1=_inc_vbuz1 
+  //SEG325 [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuz1=_inc_vbuz1 
     inc i
-  //SEG320 [156] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 
+  //SEG326 [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 
     lda i
     cmp #$10
     bne b1_from_b3
     jmp b6
-  //SEG321 divr16u::@6
+  //SEG327 divr16u::@6
   b6:
-  //SEG322 [157] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) -- vwuz1=vwuz2 
+  //SEG328 [161] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) -- vwuz1=vwuz2 
     lda rem
     sta rem16u
     lda rem+1
     sta rem16u+1
     jmp breturn
-  //SEG323 divr16u::@return
+  //SEG329 divr16u::@return
   breturn:
-  //SEG324 [158] return  [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
+  //SEG330 [162] return  [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
     rts
 }
 
@@ -6816,68 +6771,70 @@ Statement [54] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( m
 Statement [56] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:7 [ print_cls::sc#1 ] ) always clobbers reg byte a 
 Statement [60] (dword) div32u16u::return#0 ← (dword) div32u16u::return#1 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] ) always clobbers reg byte a 
 Statement [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#0 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] ) always clobbers reg byte a 
-Statement [63] if((dword) sin16s_gen::x#10<(const dword) PI_u4f28#0) goto sin16s_gen::@17 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) always clobbers reg byte a 
-Statement [64] (dword) sin16s_gen::xp#1 ← (dword) sin16s_gen::x#10 - (const dword) PI_u4f28#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ) always clobbers reg byte a 
-Statement [66] if((dword) sin16s_gen::xp#3<(const dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) always clobbers reg byte a 
-Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ sin16s_gen::isUpper#10 ]
-Statement [67] (dword) sin16s_gen::xp#2 ← (const dword) PI_u4f28#0 - (dword) sin16s_gen::xp#3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ) always clobbers reg byte a 
-Statement [69] (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ) always clobbers reg byte a 
-Statement [70] (word) sin16s_gen::x1#0 ← > (dword~) sin16s_gen::$7 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ) always clobbers reg byte a 
-Statement [71] (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ) always clobbers reg byte a 
-Statement [72] (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) always clobbers reg byte a 
-Statement [74] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ) always clobbers reg byte a 
-Statement [75] (word) sin16s_gen::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ) always clobbers reg byte a 
-Statement [76] (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ) always clobbers reg byte a 
-Statement [77] (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) always clobbers reg byte a 
-Statement [79] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ) always clobbers reg byte a 
-Statement [80] (word) sin16s_gen::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ) always clobbers reg byte a 
-Statement [81] (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ) always clobbers reg byte a 
-Statement [83] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ) always clobbers reg byte a 
-Statement [84] (word) sin16s_gen::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ) always clobbers reg byte a 
-Statement [85] (word) sin16s_gen::usinx#0 ← (word) sin16s_gen::x1#0 - (word) sin16s_gen::x3_6#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ) always clobbers reg byte a 
-Statement [86] (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ) always clobbers reg byte a 
-Statement [87] (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) always clobbers reg byte a 
-Statement [89] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ) always clobbers reg byte a 
-Statement [90] (word) sin16s_gen::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ) always clobbers reg byte a 
-Statement [91] (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ) always clobbers reg byte a 
-Statement [92] (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) always clobbers reg byte a 
-Statement [94] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ) always clobbers reg byte a 
-Statement [95] (word) sin16s_gen::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ) always clobbers reg byte a 
-Statement [96] (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ) always clobbers reg byte a 
-Statement [98] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ) always clobbers reg byte a 
-Statement [99] (word) sin16s_gen::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ) always clobbers reg byte a 
-Statement [100] (word) sin16s_gen::usinx#1 ← (word) sin16s_gen::usinx#0 + (word) sin16s_gen::x5_128#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ) always clobbers reg byte a 
-Statement [102] (signed word) sin16s_gen::sinx#1 ← - (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ) always clobbers reg byte a 
-Statement [104] *((signed word*) sin16s_gen::sintab#10) ← (signed word) sin16s_gen::sinx#2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) always clobbers reg byte a reg byte y 
-Statement [105] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ) always clobbers reg byte a 
-Statement [106] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#10 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) always clobbers reg byte a 
-Statement [108] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) always clobbers reg byte a 
-Statement [110] (signed word~) sin16s_gen::sinx#3 ← (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ) always clobbers reg byte a 
-Statement [111] (dword~) sin16s_gen::xp#7 ← (dword) sin16s_gen::x#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ) always clobbers reg byte a 
-Statement [113] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) always clobbers reg byte a 
+Statement [63] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ) always clobbers reg byte a 
+Statement [65] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ) always clobbers reg byte a 
+Statement [66] (signed word~) sin16s_gen::$1 ← (signed word) sin16s::return#0 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] ) always clobbers reg byte a 
+Statement [67] *((signed word*) sin16s_gen::sintab#2) ← (signed word~) sin16s_gen::$1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ) always clobbers reg byte a reg byte y 
+Statement [68] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] ) always clobbers reg byte a 
+Statement [69] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#2 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) always clobbers reg byte a 
+Statement [71] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) always clobbers reg byte a 
+Statement [73] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ) always clobbers reg byte a 
+Statement [74] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#1 ] ) always clobbers reg byte a 
+Statement [76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#4 sin16s::isUpper#10 ] ) always clobbers reg byte a 
+Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ sin16s::isUpper#10 ]
+Statement [77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#10 sin16s::x#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x#2 ] ) always clobbers reg byte a 
+Statement [79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#10 sin16s::$6 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::$6 ] ) always clobbers reg byte a 
+Statement [80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#10 sin16s::x1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 ] ) always clobbers reg byte a 
+Statement [81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ) always clobbers reg byte a 
+Statement [82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) always clobbers reg byte a 
+Statement [84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#0 ] ) always clobbers reg byte a 
+Statement [85] (word) sin16s::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x2#0 ] ) always clobbers reg byte a 
+Statement [86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ) always clobbers reg byte a 
+Statement [87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) always clobbers reg byte a 
+Statement [89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#1 ] ) always clobbers reg byte a 
+Statement [90] (word) sin16s::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 ] ) always clobbers reg byte a 
+Statement [91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ) always clobbers reg byte a 
+Statement [93] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ) always clobbers reg byte a 
+Statement [94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ) always clobbers reg byte a 
+Statement [95] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ) always clobbers reg byte a 
+Statement [96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ) always clobbers reg byte a 
+Statement [97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) always clobbers reg byte a 
+Statement [99] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ) always clobbers reg byte a 
+Statement [100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ) always clobbers reg byte a 
+Statement [101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ) always clobbers reg byte a 
+Statement [102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) always clobbers reg byte a 
+Statement [104] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ) always clobbers reg byte a 
+Statement [105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5#0 ] ) always clobbers reg byte a 
+Statement [106] (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ) always clobbers reg byte a 
+Statement [108] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ) always clobbers reg byte a 
+Statement [109] (word) sin16s::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5_128#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5_128#0 ] ) always clobbers reg byte a 
+Statement [110] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#10 sin16s::usinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#1 ] ) always clobbers reg byte a 
+Statement [112] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::sinx#1 ] ) always clobbers reg byte a 
+Statement [115] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1 [ sin16s::return#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#5 ] ) always clobbers reg byte a 
+Statement [117] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) always clobbers reg byte a 
 Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ mul_u16_sel::select#6 ]
-Statement [114] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) always clobbers reg byte a 
-Statement [116] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) always clobbers reg byte a 
-Statement [117] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) always clobbers reg byte a 
-Statement [118] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] ) always clobbers reg byte a 
-Statement [119] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) always clobbers reg byte a 
-Statement [121] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) always clobbers reg byte a 
-Statement [123] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) always clobbers reg byte a 
-Statement [125] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) always clobbers reg byte a 
-Statement [127] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) always clobbers reg byte a 
-Statement [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) always clobbers reg byte a 
-Statement [134] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) always clobbers reg byte a 
-Statement [135] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) always clobbers reg byte a 
-Statement [137] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) always clobbers reg byte a 
-Statement [138] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) always clobbers reg byte a 
-Statement [139] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) always clobbers reg byte a 
-Statement [144] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a 
+Statement [118] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) always clobbers reg byte a 
+Statement [120] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) always clobbers reg byte a 
+Statement [121] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) always clobbers reg byte a 
+Statement [122] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] ) always clobbers reg byte a 
+Statement [123] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) always clobbers reg byte a 
+Statement [125] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) always clobbers reg byte a 
+Statement [127] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) always clobbers reg byte a 
+Statement [129] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) always clobbers reg byte a 
+Statement [131] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) always clobbers reg byte a 
+Statement [137] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) always clobbers reg byte a 
+Statement [138] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) always clobbers reg byte a 
+Statement [139] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) always clobbers reg byte a 
+Statement [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) always clobbers reg byte a 
+Statement [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) always clobbers reg byte a 
+Statement [143] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) always clobbers reg byte a 
+Statement [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a 
 Removing always clobbered register reg byte a as potential for zp ZP_BYTE:52 [ divr16u::i#2 divr16u::i#1 ]
-Statement [145] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a 
-Statement [147] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a 
-Statement [151] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a 
-Statement [153] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a 
-Statement [157] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) always clobbers reg byte a 
+Statement [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a 
+Statement [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a 
+Statement [155] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a 
+Statement [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a 
+Statement [161] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) always clobbers reg byte a 
 Statement [9] (signed word) main::sw#0 ← *((signed word*) main::st1#2) [ main::st1#2 char_cursor#49 main::sw#0 ] ( main:2 [ main::st1#2 char_cursor#49 main::sw#0 ] ) always clobbers reg byte a reg byte y 
 Statement [10] if((signed word) main::sw#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 [ main::st1#2 char_cursor#49 main::sw#0 ] ( main:2 [ main::st1#2 char_cursor#49 main::sw#0 ] ) always clobbers reg byte a 
 Statement [14] (signed word) print_sword::w#1 ← (signed word) main::sw#0 [ main::st1#2 char_cursor#48 print_sword::w#1 ] ( main:2 [ main::st1#2 char_cursor#48 print_sword::w#1 ] ) always clobbers reg byte a 
@@ -6895,65 +6852,67 @@ Statement [54] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( m
 Statement [56] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:7 [ print_cls::sc#1 ] ) always clobbers reg byte a 
 Statement [60] (dword) div32u16u::return#0 ← (dword) div32u16u::return#1 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] ) always clobbers reg byte a 
 Statement [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#0 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] ) always clobbers reg byte a 
-Statement [63] if((dword) sin16s_gen::x#10<(const dword) PI_u4f28#0) goto sin16s_gen::@17 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) always clobbers reg byte a 
-Statement [64] (dword) sin16s_gen::xp#1 ← (dword) sin16s_gen::x#10 - (const dword) PI_u4f28#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ) always clobbers reg byte a 
-Statement [66] if((dword) sin16s_gen::xp#3<(const dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) always clobbers reg byte a 
-Statement [67] (dword) sin16s_gen::xp#2 ← (const dword) PI_u4f28#0 - (dword) sin16s_gen::xp#3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ) always clobbers reg byte a 
-Statement [69] (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ) always clobbers reg byte a 
-Statement [70] (word) sin16s_gen::x1#0 ← > (dword~) sin16s_gen::$7 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ) always clobbers reg byte a 
-Statement [71] (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ) always clobbers reg byte a 
-Statement [72] (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) always clobbers reg byte a 
-Statement [74] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ) always clobbers reg byte a 
-Statement [75] (word) sin16s_gen::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ) always clobbers reg byte a 
-Statement [76] (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ) always clobbers reg byte a 
-Statement [77] (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) always clobbers reg byte a 
-Statement [79] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ) always clobbers reg byte a 
-Statement [80] (word) sin16s_gen::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ) always clobbers reg byte a 
-Statement [81] (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ) always clobbers reg byte a 
-Statement [83] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ) always clobbers reg byte a 
-Statement [84] (word) sin16s_gen::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ) always clobbers reg byte a 
-Statement [85] (word) sin16s_gen::usinx#0 ← (word) sin16s_gen::x1#0 - (word) sin16s_gen::x3_6#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ) always clobbers reg byte a 
-Statement [86] (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ) always clobbers reg byte a 
-Statement [87] (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) always clobbers reg byte a 
-Statement [89] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ) always clobbers reg byte a 
-Statement [90] (word) sin16s_gen::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ) always clobbers reg byte a 
-Statement [91] (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ) always clobbers reg byte a 
-Statement [92] (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) always clobbers reg byte a 
-Statement [94] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ) always clobbers reg byte a 
-Statement [95] (word) sin16s_gen::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ) always clobbers reg byte a 
-Statement [96] (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ) always clobbers reg byte a 
-Statement [98] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ) always clobbers reg byte a 
-Statement [99] (word) sin16s_gen::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ) always clobbers reg byte a 
-Statement [100] (word) sin16s_gen::usinx#1 ← (word) sin16s_gen::usinx#0 + (word) sin16s_gen::x5_128#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ) always clobbers reg byte a 
-Statement [102] (signed word) sin16s_gen::sinx#1 ← - (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ) always clobbers reg byte a 
-Statement [104] *((signed word*) sin16s_gen::sintab#10) ← (signed word) sin16s_gen::sinx#2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) always clobbers reg byte a reg byte y 
-Statement [105] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ) always clobbers reg byte a 
-Statement [106] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#10 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) always clobbers reg byte a 
-Statement [108] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) always clobbers reg byte a 
-Statement [110] (signed word~) sin16s_gen::sinx#3 ← (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ) always clobbers reg byte a 
-Statement [111] (dword~) sin16s_gen::xp#7 ← (dword) sin16s_gen::x#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ) always clobbers reg byte a 
-Statement [113] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) always clobbers reg byte a 
-Statement [114] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) always clobbers reg byte a 
-Statement [116] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) always clobbers reg byte a 
-Statement [117] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) always clobbers reg byte a 
-Statement [118] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] ) always clobbers reg byte a 
-Statement [119] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) always clobbers reg byte a 
-Statement [121] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) always clobbers reg byte a 
-Statement [123] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) always clobbers reg byte a 
-Statement [125] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) always clobbers reg byte a 
-Statement [127] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) always clobbers reg byte a 
-Statement [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) always clobbers reg byte a 
-Statement [134] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) always clobbers reg byte a 
-Statement [135] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) always clobbers reg byte a 
-Statement [137] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) always clobbers reg byte a 
-Statement [138] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) always clobbers reg byte a 
-Statement [139] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) always clobbers reg byte a 
-Statement [144] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a 
-Statement [145] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a 
-Statement [147] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a 
-Statement [151] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a 
-Statement [153] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a 
-Statement [157] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) always clobbers reg byte a 
+Statement [63] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ) always clobbers reg byte a 
+Statement [65] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ) always clobbers reg byte a 
+Statement [66] (signed word~) sin16s_gen::$1 ← (signed word) sin16s::return#0 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] ) always clobbers reg byte a 
+Statement [67] *((signed word*) sin16s_gen::sintab#2) ← (signed word~) sin16s_gen::$1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ) always clobbers reg byte a reg byte y 
+Statement [68] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] ) always clobbers reg byte a 
+Statement [69] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#2 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) always clobbers reg byte a 
+Statement [71] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) always clobbers reg byte a 
+Statement [73] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ) always clobbers reg byte a 
+Statement [74] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#1 ] ) always clobbers reg byte a 
+Statement [76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#4 sin16s::isUpper#10 ] ) always clobbers reg byte a 
+Statement [77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#10 sin16s::x#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x#2 ] ) always clobbers reg byte a 
+Statement [79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#10 sin16s::$6 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::$6 ] ) always clobbers reg byte a 
+Statement [80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#10 sin16s::x1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 ] ) always clobbers reg byte a 
+Statement [81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ) always clobbers reg byte a 
+Statement [82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) always clobbers reg byte a 
+Statement [84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#0 ] ) always clobbers reg byte a 
+Statement [85] (word) sin16s::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x2#0 ] ) always clobbers reg byte a 
+Statement [86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ) always clobbers reg byte a 
+Statement [87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) always clobbers reg byte a 
+Statement [89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#1 ] ) always clobbers reg byte a 
+Statement [90] (word) sin16s::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 ] ) always clobbers reg byte a 
+Statement [91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ) always clobbers reg byte a 
+Statement [93] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ) always clobbers reg byte a 
+Statement [94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ) always clobbers reg byte a 
+Statement [95] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ) always clobbers reg byte a 
+Statement [96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ) always clobbers reg byte a 
+Statement [97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) always clobbers reg byte a 
+Statement [99] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ) always clobbers reg byte a 
+Statement [100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ) always clobbers reg byte a 
+Statement [101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ) always clobbers reg byte a 
+Statement [102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) always clobbers reg byte a 
+Statement [104] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ) always clobbers reg byte a 
+Statement [105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5#0 ] ) always clobbers reg byte a 
+Statement [106] (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ) always clobbers reg byte a 
+Statement [108] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ) always clobbers reg byte a 
+Statement [109] (word) sin16s::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5_128#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5_128#0 ] ) always clobbers reg byte a 
+Statement [110] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#10 sin16s::usinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#1 ] ) always clobbers reg byte a 
+Statement [112] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::sinx#1 ] ) always clobbers reg byte a 
+Statement [115] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1 [ sin16s::return#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#5 ] ) always clobbers reg byte a 
+Statement [117] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) always clobbers reg byte a 
+Statement [118] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) always clobbers reg byte a 
+Statement [120] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) always clobbers reg byte a 
+Statement [121] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) always clobbers reg byte a 
+Statement [122] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] ) always clobbers reg byte a 
+Statement [123] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) always clobbers reg byte a 
+Statement [125] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) always clobbers reg byte a 
+Statement [127] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) always clobbers reg byte a 
+Statement [129] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) always clobbers reg byte a 
+Statement [131] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) always clobbers reg byte a 
+Statement [137] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) always clobbers reg byte a 
+Statement [138] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) always clobbers reg byte a 
+Statement [139] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) always clobbers reg byte a 
+Statement [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) always clobbers reg byte a 
+Statement [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) always clobbers reg byte a 
+Statement [143] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) always clobbers reg byte a 
+Statement [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a 
+Statement [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a 
+Statement [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a 
+Statement [155] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a 
+Statement [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a 
+Statement [161] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) always clobbers reg byte a 
 Potential registers zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] : zp ZP_WORD:2 , 
 Potential registers zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ] : zp ZP_WORD:4 , 
 Potential registers zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] : zp ZP_WORD:6 , 
@@ -6961,14 +6920,14 @@ Potential registers zp ZP_BYTE:8 [ print_byte::b#2 print_byte::b#0 print_byte::b
 Potential registers zp ZP_BYTE:9 [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] : zp ZP_BYTE:9 , reg byte a , reg byte x , reg byte y , 
 Potential registers zp ZP_WORD:10 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 ] : zp ZP_WORD:10 , 
 Potential registers zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ] : zp ZP_WORD:12 , 
-Potential registers zp ZP_DWORD:14 [ sin16s_gen::x#10 sin16s_gen::x#1 ] : zp ZP_DWORD:14 , 
-Potential registers zp ZP_WORD:18 [ sin16s_gen::sintab#10 sin16s_gen::sintab#1 ] : zp ZP_WORD:18 , 
-Potential registers zp ZP_WORD:20 [ sin16s_gen::i#10 sin16s_gen::i#1 ] : zp ZP_WORD:20 , 
-Potential registers zp ZP_BYTE:22 [ sin16s_gen::isUpper#10 ] : zp ZP_BYTE:22 , reg byte x , reg byte y , 
-Potential registers zp ZP_DWORD:23 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 ] : zp ZP_DWORD:23 , 
-Potential registers zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 ] : zp ZP_WORD:27 , 
-Potential registers zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 ] : zp ZP_WORD:29 , 
-Potential registers zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 ] : zp ZP_WORD:31 , 
+Potential registers zp ZP_DWORD:14 [ sin16s_gen::x#2 sin16s_gen::x#1 ] : zp ZP_DWORD:14 , 
+Potential registers zp ZP_WORD:18 [ sin16s_gen::sintab#2 sin16s_gen::sintab#1 ] : zp ZP_WORD:18 , 
+Potential registers zp ZP_WORD:20 [ sin16s_gen::i#2 sin16s_gen::i#1 ] : zp ZP_WORD:20 , 
+Potential registers zp ZP_BYTE:22 [ sin16s::isUpper#10 ] : zp ZP_BYTE:22 , reg byte x , reg byte y , 
+Potential registers zp ZP_DWORD:23 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] : zp ZP_DWORD:23 , 
+Potential registers zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] : zp ZP_WORD:27 , 
+Potential registers zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 ] : zp ZP_WORD:29 , 
+Potential registers zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 ] : zp ZP_WORD:31 , 
 Potential registers zp ZP_BYTE:33 [ mul_u16_sel::select#6 ] : zp ZP_BYTE:33 , reg byte x , reg byte y , 
 Potential registers zp ZP_WORD:34 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] : zp ZP_WORD:34 , 
 Potential registers zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] : zp ZP_DWORD:36 , 
@@ -6983,111 +6942,120 @@ Potential registers zp ZP_BYTE:55 [ print_byte::$0 ] : zp ZP_BYTE:55 , reg byte
 Potential registers zp ZP_BYTE:56 [ print_byte::$2 ] : zp ZP_BYTE:56 , reg byte a , reg byte x , reg byte y , 
 Potential registers zp ZP_DWORD:57 [ div32u16u::return#0 ] : zp ZP_DWORD:57 , 
 Potential registers zp ZP_DWORD:61 [ sin16s_gen::step#0 ] : zp ZP_DWORD:61 , 
-Potential registers zp ZP_DWORD:65 [ sin16s_gen::$7 ] : zp ZP_DWORD:65 , 
-Potential registers zp ZP_WORD:69 [ sin16s_gen::x1#0 ] : zp ZP_WORD:69 , 
-Potential registers zp ZP_WORD:71 [ mul_u16_sel::return#0 ] : zp ZP_WORD:71 , 
-Potential registers zp ZP_WORD:73 [ sin16s_gen::x2#0 ] : zp ZP_WORD:73 , 
-Potential registers zp ZP_WORD:75 [ mul_u16_sel::return#1 ] : zp ZP_WORD:75 , 
-Potential registers zp ZP_WORD:77 [ sin16s_gen::x3#0 ] : zp ZP_WORD:77 , 
-Potential registers zp ZP_WORD:79 [ mul_u16_sel::return#10 ] : zp ZP_WORD:79 , 
-Potential registers zp ZP_WORD:81 [ sin16s_gen::x3_6#0 ] : zp ZP_WORD:81 , 
-Potential registers zp ZP_WORD:83 [ sin16s_gen::usinx#0 ] : zp ZP_WORD:83 , 
-Potential registers zp ZP_WORD:85 [ mul_u16_sel::return#11 ] : zp ZP_WORD:85 , 
-Potential registers zp ZP_WORD:87 [ sin16s_gen::x4#0 ] : zp ZP_WORD:87 , 
-Potential registers zp ZP_WORD:89 [ mul_u16_sel::return#12 ] : zp ZP_WORD:89 , 
-Potential registers zp ZP_WORD:91 [ sin16s_gen::x5#0 ] : zp ZP_WORD:91 , 
-Potential registers zp ZP_WORD:93 [ mul_u16_sel::return#13 ] : zp ZP_WORD:93 , 
-Potential registers zp ZP_WORD:95 [ sin16s_gen::x5_128#0 ] : zp ZP_WORD:95 , 
-Potential registers zp ZP_WORD:97 [ sin16s_gen::usinx#1 ] : zp ZP_WORD:97 , 
-Potential registers zp ZP_WORD:99 [ mul16u::b#0 ] : zp ZP_WORD:99 , 
-Potential registers zp ZP_DWORD:101 [ mul16u::return#2 ] : zp ZP_DWORD:101 , 
-Potential registers zp ZP_DWORD:105 [ mul_u16_sel::$0 ] : zp ZP_DWORD:105 , 
-Potential registers zp ZP_DWORD:109 [ mul_u16_sel::$1 ] : zp ZP_DWORD:109 , 
-Potential registers zp ZP_WORD:113 [ mul_u16_sel::return#14 ] : zp ZP_WORD:113 , 
-Potential registers zp ZP_BYTE:115 [ mul16u::$1 ] : zp ZP_BYTE:115 , reg byte a , reg byte x , reg byte y , 
-Potential registers zp ZP_WORD:116 [ divr16u::return#2 ] : zp ZP_WORD:116 , 
-Potential registers zp ZP_WORD:118 [ div32u16u::quotient_hi#0 ] : zp ZP_WORD:118 , 
-Potential registers zp ZP_WORD:120 [ divr16u::return#3 ] : zp ZP_WORD:120 , 
-Potential registers zp ZP_WORD:122 [ div32u16u::quotient_lo#0 ] : zp ZP_WORD:122 , 
-Potential registers zp ZP_DWORD:124 [ div32u16u::return#1 ] : zp ZP_DWORD:124 , 
-Potential registers zp ZP_BYTE:128 [ divr16u::$1 ] : zp ZP_BYTE:128 , reg byte a , reg byte x , reg byte y , 
-Potential registers zp ZP_BYTE:129 [ divr16u::$2 ] : zp ZP_BYTE:129 , reg byte a , reg byte x , reg byte y , 
-Potential registers zp ZP_WORD:130 [ rem16u#1 ] : zp ZP_WORD:130 , 
+Potential registers zp ZP_WORD:65 [ sin16s::return#0 ] : zp ZP_WORD:65 , 
+Potential registers zp ZP_WORD:67 [ sin16s_gen::$1 ] : zp ZP_WORD:67 , 
+Potential registers zp ZP_DWORD:69 [ sin16s::$6 ] : zp ZP_DWORD:69 , 
+Potential registers zp ZP_WORD:73 [ sin16s::x1#0 ] : zp ZP_WORD:73 , 
+Potential registers zp ZP_WORD:75 [ mul_u16_sel::return#0 ] : zp ZP_WORD:75 , 
+Potential registers zp ZP_WORD:77 [ sin16s::x2#0 ] : zp ZP_WORD:77 , 
+Potential registers zp ZP_WORD:79 [ mul_u16_sel::return#1 ] : zp ZP_WORD:79 , 
+Potential registers zp ZP_WORD:81 [ sin16s::x3#0 ] : zp ZP_WORD:81 , 
+Potential registers zp ZP_WORD:83 [ mul_u16_sel::return#10 ] : zp ZP_WORD:83 , 
+Potential registers zp ZP_WORD:85 [ sin16s::x3_6#0 ] : zp ZP_WORD:85 , 
+Potential registers zp ZP_WORD:87 [ sin16s::usinx#0 ] : zp ZP_WORD:87 , 
+Potential registers zp ZP_WORD:89 [ mul_u16_sel::return#11 ] : zp ZP_WORD:89 , 
+Potential registers zp ZP_WORD:91 [ sin16s::x4#0 ] : zp ZP_WORD:91 , 
+Potential registers zp ZP_WORD:93 [ mul_u16_sel::return#12 ] : zp ZP_WORD:93 , 
+Potential registers zp ZP_WORD:95 [ sin16s::x5#0 ] : zp ZP_WORD:95 , 
+Potential registers zp ZP_WORD:97 [ mul_u16_sel::return#13 ] : zp ZP_WORD:97 , 
+Potential registers zp ZP_WORD:99 [ sin16s::x5_128#0 ] : zp ZP_WORD:99 , 
+Potential registers zp ZP_WORD:101 [ sin16s::usinx#1 ] : zp ZP_WORD:101 , 
+Potential registers zp ZP_WORD:103 [ mul16u::b#0 ] : zp ZP_WORD:103 , 
+Potential registers zp ZP_DWORD:105 [ mul16u::return#2 ] : zp ZP_DWORD:105 , 
+Potential registers zp ZP_DWORD:109 [ mul_u16_sel::$0 ] : zp ZP_DWORD:109 , 
+Potential registers zp ZP_DWORD:113 [ mul_u16_sel::$1 ] : zp ZP_DWORD:113 , 
+Potential registers zp ZP_WORD:117 [ mul_u16_sel::return#14 ] : zp ZP_WORD:117 , 
+Potential registers zp ZP_BYTE:119 [ mul16u::$1 ] : zp ZP_BYTE:119 , reg byte a , reg byte x , reg byte y , 
+Potential registers zp ZP_WORD:120 [ divr16u::return#2 ] : zp ZP_WORD:120 , 
+Potential registers zp ZP_WORD:122 [ div32u16u::quotient_hi#0 ] : zp ZP_WORD:122 , 
+Potential registers zp ZP_WORD:124 [ divr16u::return#3 ] : zp ZP_WORD:124 , 
+Potential registers zp ZP_WORD:126 [ div32u16u::quotient_lo#0 ] : zp ZP_WORD:126 , 
+Potential registers zp ZP_DWORD:128 [ div32u16u::return#1 ] : zp ZP_DWORD:128 , 
+Potential registers zp ZP_BYTE:132 [ divr16u::$1 ] : zp ZP_BYTE:132 , reg byte a , reg byte x , reg byte y , 
+Potential registers zp ZP_BYTE:133 [ divr16u::$2 ] : zp ZP_BYTE:133 , reg byte a , reg byte x , reg byte y , 
+Potential registers zp ZP_WORD:134 [ rem16u#1 ] : zp ZP_WORD:134 , 
 
 REGISTER UPLIFT SCOPES
-Uplift Scope [mul16u] 353.83: zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] 249.57: zp ZP_DWORD:40 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] 202: zp ZP_BYTE:115 [ mul16u::$1 ] 170: zp ZP_WORD:34 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] 4: zp ZP_WORD:99 [ mul16u::b#0 ] 4: zp ZP_DWORD:101 [ mul16u::return#2 ] 
-Uplift Scope [mul_u16_sel] 156: zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 ] 111: zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 ] 22: zp ZP_WORD:71 [ mul_u16_sel::return#0 ] 22: zp ZP_WORD:75 [ mul_u16_sel::return#1 ] 22: zp ZP_WORD:79 [ mul_u16_sel::return#10 ] 22: zp ZP_WORD:85 [ mul_u16_sel::return#11 ] 22: zp ZP_WORD:89 [ mul_u16_sel::return#12 ] 22: zp ZP_WORD:93 [ mul_u16_sel::return#13 ] 8.5: zp ZP_WORD:113 [ mul_u16_sel::return#14 ] 4: zp ZP_DWORD:105 [ mul_u16_sel::$0 ] 4: zp ZP_DWORD:109 [ mul_u16_sel::$1 ] 0.33: zp ZP_BYTE:33 [ mul_u16_sel::select#6 ] 
-Uplift Scope [sin16s_gen] 126.5: zp ZP_DWORD:23 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 ] 77: zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 ] 22: zp ZP_DWORD:65 [ sin16s_gen::$7 ] 22: zp ZP_WORD:73 [ sin16s_gen::x2#0 ] 22: zp ZP_WORD:81 [ sin16s_gen::x3_6#0 ] 22: zp ZP_WORD:87 [ sin16s_gen::x4#0 ] 22: zp ZP_WORD:91 [ sin16s_gen::x5#0 ] 22: zp ZP_WORD:95 [ sin16s_gen::x5_128#0 ] 16.97: zp ZP_WORD:20 [ sin16s_gen::i#10 sin16s_gen::i#1 ] 8.53: zp ZP_DWORD:14 [ sin16s_gen::x#10 sin16s_gen::x#1 ] 6.23: zp ZP_WORD:18 [ sin16s_gen::sintab#10 sin16s_gen::sintab#1 ] 5.5: zp ZP_WORD:77 [ sin16s_gen::x3#0 ] 5.5: zp ZP_WORD:97 [ sin16s_gen::usinx#1 ] 3.5: zp ZP_WORD:69 [ sin16s_gen::x1#0 ] 1.47: zp ZP_WORD:83 [ sin16s_gen::usinx#0 ] 0.31: zp ZP_BYTE:22 [ sin16s_gen::isUpper#10 ] 0.26: zp ZP_DWORD:61 [ sin16s_gen::step#0 ] 
+Uplift Scope [mul16u] 353.83: zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] 249.57: zp ZP_DWORD:40 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] 202: zp ZP_BYTE:119 [ mul16u::$1 ] 170: zp ZP_WORD:34 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] 4: zp ZP_WORD:103 [ mul16u::b#0 ] 4: zp ZP_DWORD:105 [ mul16u::return#2 ] 
 Uplift Scope [print_str] 305.5: zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ] 
-Uplift Scope [divr16u] 106.92: zp ZP_WORD:46 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] 35.54: zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] 22: zp ZP_BYTE:128 [ divr16u::$1 ] 22: zp ZP_BYTE:129 [ divr16u::$2 ] 18.19: zp ZP_BYTE:52 [ divr16u::i#2 divr16u::i#1 ] 9.75: zp ZP_WORD:48 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] 4: zp ZP_WORD:116 [ divr16u::return#2 ] 4: zp ZP_WORD:120 [ divr16u::return#3 ] 1.38: zp ZP_WORD:44 [ divr16u::divisor#6 ] 
-Uplift Scope [] 191.74: zp ZP_WORD:10 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 ] 0.8: zp ZP_WORD:130 [ rem16u#1 ] 
+Uplift Scope [divr16u] 106.92: zp ZP_WORD:46 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] 35.54: zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] 22: zp ZP_BYTE:132 [ divr16u::$1 ] 22: zp ZP_BYTE:133 [ divr16u::$2 ] 18.19: zp ZP_BYTE:52 [ divr16u::i#2 divr16u::i#1 ] 9.75: zp ZP_WORD:48 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] 4: zp ZP_WORD:120 [ divr16u::return#2 ] 4: zp ZP_WORD:124 [ divr16u::return#3 ] 1.38: zp ZP_WORD:44 [ divr16u::divisor#6 ] 
+Uplift Scope [] 191.74: zp ZP_WORD:10 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 ] 0.8: zp ZP_WORD:134 [ rem16u#1 ] 
+Uplift Scope [sin16s] 27.5: zp ZP_DWORD:23 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] 22: zp ZP_WORD:65 [ sin16s::return#0 ] 13: zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] 4: zp ZP_DWORD:69 [ sin16s::$6 ] 4: zp ZP_WORD:77 [ sin16s::x2#0 ] 4: zp ZP_WORD:85 [ sin16s::x3_6#0 ] 4: zp ZP_WORD:91 [ sin16s::x4#0 ] 4: zp ZP_WORD:95 [ sin16s::x5#0 ] 4: zp ZP_WORD:99 [ sin16s::x5_128#0 ] 1: zp ZP_WORD:81 [ sin16s::x3#0 ] 1: zp ZP_WORD:101 [ sin16s::usinx#1 ] 0.64: zp ZP_WORD:73 [ sin16s::x1#0 ] 0.27: zp ZP_WORD:87 [ sin16s::usinx#0 ] 0.06: zp ZP_BYTE:22 [ sin16s::isUpper#10 ] 
+Uplift Scope [mul_u16_sel] 30: zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 ] 21: zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 ] 4: zp ZP_WORD:75 [ mul_u16_sel::return#0 ] 4: zp ZP_WORD:79 [ mul_u16_sel::return#1 ] 4: zp ZP_WORD:83 [ mul_u16_sel::return#10 ] 4: zp ZP_WORD:89 [ mul_u16_sel::return#11 ] 4: zp ZP_WORD:93 [ mul_u16_sel::return#12 ] 4: zp ZP_WORD:97 [ mul_u16_sel::return#13 ] 4: zp ZP_DWORD:109 [ mul_u16_sel::$0 ] 4: zp ZP_DWORD:113 [ mul_u16_sel::$1 ] 1.75: zp ZP_WORD:117 [ mul_u16_sel::return#14 ] 0.33: zp ZP_BYTE:33 [ mul_u16_sel::select#6 ] 
+Uplift Scope [sin16s_gen] 22: zp ZP_WORD:67 [ sin16s_gen::$1 ] 19.25: zp ZP_WORD:20 [ sin16s_gen::i#2 sin16s_gen::i#1 ] 12.05: zp ZP_DWORD:14 [ sin16s_gen::x#2 sin16s_gen::x#1 ] 11: zp ZP_WORD:18 [ sin16s_gen::sintab#2 sin16s_gen::sintab#1 ] 1.18: zp ZP_DWORD:61 [ sin16s_gen::step#0 ] 
 Uplift Scope [print_cls] 33: zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ] 
 Uplift Scope [main] 19.8: zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] 6.6: zp ZP_WORD:53 [ main::sw#0 ] 
 Uplift Scope [print_byte] 10: zp ZP_BYTE:8 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] 4: zp ZP_BYTE:55 [ print_byte::$0 ] 4: zp ZP_BYTE:56 [ print_byte::$2 ] 
 Uplift Scope [print_char] 14: zp ZP_BYTE:9 [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] 
-Uplift Scope [div32u16u] 4: zp ZP_DWORD:57 [ div32u16u::return#0 ] 4: zp ZP_WORD:122 [ div32u16u::quotient_lo#0 ] 1.33: zp ZP_DWORD:124 [ div32u16u::return#1 ] 0.8: zp ZP_WORD:118 [ div32u16u::quotient_hi#0 ] 
+Uplift Scope [div32u16u] 4: zp ZP_DWORD:57 [ div32u16u::return#0 ] 4: zp ZP_WORD:126 [ div32u16u::quotient_lo#0 ] 1.33: zp ZP_DWORD:128 [ div32u16u::return#1 ] 0.8: zp ZP_WORD:122 [ div32u16u::quotient_hi#0 ] 
 Uplift Scope [print_sword] 9.58: zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] 
 Uplift Scope [print_word] 
 
-Uplifting [mul16u] best 30529 combination zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:40 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:34 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] zp ZP_WORD:99 [ mul16u::b#0 ] zp ZP_DWORD:101 [ mul16u::return#2 ] 
-Uplifting [mul_u16_sel] best 30510 combination zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 ] zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 ] zp ZP_WORD:71 [ mul_u16_sel::return#0 ] zp ZP_WORD:75 [ mul_u16_sel::return#1 ] zp ZP_WORD:79 [ mul_u16_sel::return#10 ] zp ZP_WORD:85 [ mul_u16_sel::return#11 ] zp ZP_WORD:89 [ mul_u16_sel::return#12 ] zp ZP_WORD:93 [ mul_u16_sel::return#13 ] zp ZP_WORD:113 [ mul_u16_sel::return#14 ] zp ZP_DWORD:105 [ mul_u16_sel::$0 ] zp ZP_DWORD:109 [ mul_u16_sel::$1 ] reg byte x [ mul_u16_sel::select#6 ] 
-Uplifting [sin16s_gen] best 30440 combination zp ZP_DWORD:23 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 ] zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 ] zp ZP_DWORD:65 [ sin16s_gen::$7 ] zp ZP_WORD:73 [ sin16s_gen::x2#0 ] zp ZP_WORD:81 [ sin16s_gen::x3_6#0 ] zp ZP_WORD:87 [ sin16s_gen::x4#0 ] zp ZP_WORD:91 [ sin16s_gen::x5#0 ] zp ZP_WORD:95 [ sin16s_gen::x5_128#0 ] zp ZP_WORD:20 [ sin16s_gen::i#10 sin16s_gen::i#1 ] zp ZP_DWORD:14 [ sin16s_gen::x#10 sin16s_gen::x#1 ] zp ZP_WORD:18 [ sin16s_gen::sintab#10 sin16s_gen::sintab#1 ] zp ZP_WORD:77 [ sin16s_gen::x3#0 ] zp ZP_WORD:97 [ sin16s_gen::usinx#1 ] zp ZP_WORD:69 [ sin16s_gen::x1#0 ] zp ZP_WORD:83 [ sin16s_gen::usinx#0 ] reg byte y [ sin16s_gen::isUpper#10 ] zp ZP_DWORD:61 [ sin16s_gen::step#0 ] 
-Uplifting [print_str] best 30440 combination zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ] 
-Uplifting [divr16u] best 30250 combination zp ZP_WORD:46 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:48 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] zp ZP_WORD:116 [ divr16u::return#2 ] zp ZP_WORD:120 [ divr16u::return#3 ] zp ZP_WORD:44 [ divr16u::divisor#6 ] 
-Uplifting [] best 30250 combination zp ZP_WORD:10 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 ] zp ZP_WORD:130 [ rem16u#1 ] 
-Uplifting [print_cls] best 30250 combination zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ] 
-Uplifting [main] best 30250 combination zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] zp ZP_WORD:53 [ main::sw#0 ] 
-Uplifting [print_byte] best 30238 combination reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] 
-Uplifting [print_char] best 30226 combination reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] 
-Uplifting [div32u16u] best 30226 combination zp ZP_DWORD:57 [ div32u16u::return#0 ] zp ZP_WORD:122 [ div32u16u::quotient_lo#0 ] zp ZP_DWORD:124 [ div32u16u::return#1 ] zp ZP_WORD:118 [ div32u16u::quotient_hi#0 ] 
-Uplifting [print_sword] best 30226 combination zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] 
-Uplifting [print_word] best 30226 combination 
-Coalescing zero page register [ zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 ] ] with [ zp ZP_WORD:97 [ sin16s_gen::usinx#1 ] ]
-Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 ] ] with [ zp ZP_WORD:77 [ sin16s_gen::x3#0 ] ]
-Coalescing zero page register [ zp ZP_WORD:46 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] ] with [ zp ZP_WORD:130 [ rem16u#1 ] ]
+Uplifting [mul16u] best 25183 combination zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:40 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:34 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] zp ZP_WORD:103 [ mul16u::b#0 ] zp ZP_DWORD:105 [ mul16u::return#2 ] 
+Uplifting [print_str] best 25183 combination zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ] 
+Uplifting [divr16u] best 24993 combination zp ZP_WORD:46 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:48 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] zp ZP_WORD:120 [ divr16u::return#2 ] zp ZP_WORD:124 [ divr16u::return#3 ] zp ZP_WORD:44 [ divr16u::divisor#6 ] 
+Uplifting [] best 24993 combination zp ZP_WORD:10 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 ] zp ZP_WORD:134 [ rem16u#1 ] 
+Uplifting [sin16s] best 24986 combination zp ZP_DWORD:23 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] zp ZP_WORD:65 [ sin16s::return#0 ] zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] zp ZP_DWORD:69 [ sin16s::$6 ] zp ZP_WORD:77 [ sin16s::x2#0 ] zp ZP_WORD:85 [ sin16s::x3_6#0 ] zp ZP_WORD:91 [ sin16s::x4#0 ] zp ZP_WORD:95 [ sin16s::x5#0 ] zp ZP_WORD:99 [ sin16s::x5_128#0 ] zp ZP_WORD:81 [ sin16s::x3#0 ] zp ZP_WORD:101 [ sin16s::usinx#1 ] zp ZP_WORD:73 [ sin16s::x1#0 ] zp ZP_WORD:87 [ sin16s::usinx#0 ] reg byte x [ sin16s::isUpper#10 ] 
+Uplifting [mul_u16_sel] best 24986 combination zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 ] zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 ] zp ZP_WORD:75 [ mul_u16_sel::return#0 ] zp ZP_WORD:79 [ mul_u16_sel::return#1 ] zp ZP_WORD:83 [ mul_u16_sel::return#10 ] zp ZP_WORD:89 [ mul_u16_sel::return#11 ] zp ZP_WORD:93 [ mul_u16_sel::return#12 ] zp ZP_WORD:97 [ mul_u16_sel::return#13 ] zp ZP_DWORD:109 [ mul_u16_sel::$0 ] zp ZP_DWORD:113 [ mul_u16_sel::$1 ] zp ZP_WORD:117 [ mul_u16_sel::return#14 ] zp ZP_BYTE:33 [ mul_u16_sel::select#6 ] 
+Uplifting [sin16s_gen] best 24986 combination zp ZP_WORD:67 [ sin16s_gen::$1 ] zp ZP_WORD:20 [ sin16s_gen::i#2 sin16s_gen::i#1 ] zp ZP_DWORD:14 [ sin16s_gen::x#2 sin16s_gen::x#1 ] zp ZP_WORD:18 [ sin16s_gen::sintab#2 sin16s_gen::sintab#1 ] zp ZP_DWORD:61 [ sin16s_gen::step#0 ] 
+Uplifting [print_cls] best 24986 combination zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ] 
+Uplifting [main] best 24986 combination zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] zp ZP_WORD:53 [ main::sw#0 ] 
+Uplifting [print_byte] best 24974 combination reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] 
+Uplifting [print_char] best 24962 combination reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] 
+Uplifting [div32u16u] best 24962 combination zp ZP_DWORD:57 [ div32u16u::return#0 ] zp ZP_WORD:126 [ div32u16u::quotient_lo#0 ] zp ZP_DWORD:128 [ div32u16u::return#1 ] zp ZP_WORD:122 [ div32u16u::quotient_hi#0 ] 
+Uplifting [print_sword] best 24962 combination zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] 
+Uplifting [print_word] best 24962 combination 
+Attempting to uplift remaining variables inzp ZP_BYTE:33 [ mul_u16_sel::select#6 ]
+Uplifting [mul_u16_sel] best 24962 combination zp ZP_BYTE:33 [ mul_u16_sel::select#6 ] 
+Coalescing zero page register [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] ] with [ zp ZP_WORD:101 [ sin16s::usinx#1 ] ]
+Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 ] ] with [ zp ZP_WORD:81 [ sin16s::x3#0 ] ]
+Coalescing zero page register [ zp ZP_WORD:46 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] ] with [ zp ZP_WORD:134 [ rem16u#1 ] ]
 Coalescing zero page register [ zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] ] with [ zp ZP_WORD:53 [ main::sw#0 ] ]
-Coalescing zero page register [ zp ZP_DWORD:23 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 ] ] with [ zp ZP_DWORD:65 [ sin16s_gen::$7 ] ]
-Coalescing zero page register [ zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 sin16s_gen::usinx#1 ] ] with [ zp ZP_WORD:83 [ sin16s_gen::usinx#0 ] ]
-Coalescing zero page register [ zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 sin16s_gen::usinx#1 sin16s_gen::usinx#0 ] ] with [ zp ZP_WORD:81 [ sin16s_gen::x3_6#0 ] ]
-Coalescing zero page register [ zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 sin16s_gen::usinx#1 sin16s_gen::usinx#0 sin16s_gen::x3_6#0 ] ] with [ zp ZP_WORD:79 [ mul_u16_sel::return#10 ] ]
-Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 ] ] with [ zp ZP_WORD:73 [ sin16s_gen::x2#0 ] ]
-Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 ] ] with [ zp ZP_WORD:71 [ mul_u16_sel::return#0 ] ]
-Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 ] ] with [ zp ZP_WORD:75 [ mul_u16_sel::return#1 ] ]
-Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 ] ] with [ zp ZP_WORD:87 [ sin16s_gen::x4#0 ] ]
-Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 ] ] with [ zp ZP_WORD:85 [ mul_u16_sel::return#11 ] ]
-Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 mul_u16_sel::return#11 ] ] with [ zp ZP_WORD:91 [ sin16s_gen::x5#0 ] ]
-Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 mul_u16_sel::return#11 sin16s_gen::x5#0 ] ] with [ zp ZP_WORD:89 [ mul_u16_sel::return#12 ] ]
-Coalescing zero page register [ zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 ] ] with [ zp ZP_WORD:99 [ mul16u::b#0 ] ]
-Coalescing zero page register [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] ] with [ zp ZP_DWORD:101 [ mul16u::return#2 ] ]
-Coalescing zero page register [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 ] ] with [ zp ZP_DWORD:105 [ mul_u16_sel::$0 ] ]
-Coalescing zero page register [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 ] ] with [ zp ZP_DWORD:109 [ mul_u16_sel::$1 ] ]
-Coalescing zero page register [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] ] with [ zp ZP_WORD:116 [ divr16u::return#2 ] ]
-Coalescing zero page register [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 ] ] with [ zp ZP_WORD:120 [ divr16u::return#3 ] ]
-Coalescing zero page register [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 ] ] with [ zp ZP_WORD:122 [ div32u16u::quotient_lo#0 ] ]
+Coalescing zero page register [ zp ZP_DWORD:23 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] ] with [ zp ZP_DWORD:69 [ sin16s::$6 ] ]
+Coalescing zero page register [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 ] ] with [ zp ZP_WORD:65 [ sin16s::return#0 ] ]
+Coalescing zero page register [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 ] ] with [ zp ZP_WORD:67 [ sin16s_gen::$1 ] ]
+Coalescing zero page register [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 ] ] with [ zp ZP_WORD:87 [ sin16s::usinx#0 ] ]
+Coalescing zero page register [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 sin16s::usinx#0 ] ] with [ zp ZP_WORD:85 [ sin16s::x3_6#0 ] ]
+Coalescing zero page register [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 sin16s::usinx#0 sin16s::x3_6#0 ] ] with [ zp ZP_WORD:83 [ mul_u16_sel::return#10 ] ]
+Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 ] ] with [ zp ZP_WORD:77 [ sin16s::x2#0 ] ]
+Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 ] ] with [ zp ZP_WORD:75 [ mul_u16_sel::return#0 ] ]
+Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 ] ] with [ zp ZP_WORD:79 [ mul_u16_sel::return#1 ] ]
+Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 ] ] with [ zp ZP_WORD:91 [ sin16s::x4#0 ] ]
+Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 ] ] with [ zp ZP_WORD:89 [ mul_u16_sel::return#11 ] ]
+Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 mul_u16_sel::return#11 ] ] with [ zp ZP_WORD:95 [ sin16s::x5#0 ] ]
+Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 mul_u16_sel::return#11 sin16s::x5#0 ] ] with [ zp ZP_WORD:93 [ mul_u16_sel::return#12 ] ]
+Coalescing zero page register [ zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 ] ] with [ zp ZP_WORD:103 [ mul16u::b#0 ] ]
+Coalescing zero page register [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] ] with [ zp ZP_DWORD:105 [ mul16u::return#2 ] ]
+Coalescing zero page register [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 ] ] with [ zp ZP_DWORD:109 [ mul_u16_sel::$0 ] ]
+Coalescing zero page register [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 ] ] with [ zp ZP_DWORD:113 [ mul_u16_sel::$1 ] ]
+Coalescing zero page register [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] ] with [ zp ZP_WORD:120 [ divr16u::return#2 ] ]
+Coalescing zero page register [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 ] ] with [ zp ZP_WORD:124 [ divr16u::return#3 ] ]
+Coalescing zero page register [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 ] ] with [ zp ZP_WORD:126 [ div32u16u::quotient_lo#0 ] ]
 Coalescing zero page register [ zp ZP_DWORD:57 [ div32u16u::return#0 ] ] with [ zp ZP_DWORD:61 [ sin16s_gen::step#0 ] ]
-Coalescing zero page register [ zp ZP_DWORD:57 [ div32u16u::return#0 sin16s_gen::step#0 ] ] with [ zp ZP_DWORD:124 [ div32u16u::return#1 ] ]
-Coalescing zero page register [ zp ZP_WORD:93 [ mul_u16_sel::return#13 ] ] with [ zp ZP_WORD:95 [ sin16s_gen::x5_128#0 ] ]
-Coalescing zero page register [ zp ZP_WORD:93 [ mul_u16_sel::return#13 sin16s_gen::x5_128#0 ] ] with [ zp ZP_WORD:113 [ mul_u16_sel::return#14 ] ]
+Coalescing zero page register [ zp ZP_DWORD:57 [ div32u16u::return#0 sin16s_gen::step#0 ] ] with [ zp ZP_DWORD:128 [ div32u16u::return#1 ] ]
+Coalescing zero page register [ zp ZP_WORD:97 [ mul_u16_sel::return#13 ] ] with [ zp ZP_WORD:99 [ sin16s::x5_128#0 ] ]
+Coalescing zero page register [ zp ZP_WORD:97 [ mul_u16_sel::return#13 sin16s::x5_128#0 ] ] with [ zp ZP_WORD:117 [ mul_u16_sel::return#14 ] ]
 Coalescing zero page register [ zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] ] with [ zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ] ]
-Coalescing zero page register [ zp ZP_WORD:2 [ main::st1#2 main::st1#1 print_cls::sc#2 print_cls::sc#1 ] ] with [ zp ZP_WORD:18 [ sin16s_gen::sintab#10 sin16s_gen::sintab#1 ] ]
-Coalescing zero page register [ zp ZP_WORD:2 [ main::st1#2 main::st1#1 print_cls::sc#2 print_cls::sc#1 sin16s_gen::sintab#10 sin16s_gen::sintab#1 ] ] with [ zp ZP_WORD:44 [ divr16u::divisor#6 ] ]
-Coalescing zero page register [ zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ] ] with [ zp ZP_WORD:20 [ sin16s_gen::i#10 sin16s_gen::i#1 ] ]
-Coalescing zero page register [ zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 sin16s_gen::i#10 sin16s_gen::i#1 ] ] with [ zp ZP_WORD:46 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 rem16u#1 ] ]
-Coalescing zero page register [ zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 main::sw#0 ] ] with [ zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 sin16s_gen::usinx#1 sin16s_gen::usinx#0 sin16s_gen::x3_6#0 mul_u16_sel::return#10 ] ]
-Coalescing zero page register [ zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 main::sw#0 sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 sin16s_gen::usinx#1 sin16s_gen::usinx#0 sin16s_gen::x3_6#0 mul_u16_sel::return#10 ] ] with [ zp ZP_WORD:48 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] ]
-Coalescing zero page register [ zp ZP_WORD:10 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 ] ] with [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 mul_u16_sel::return#11 sin16s_gen::x5#0 mul_u16_sel::return#12 ] ]
-Coalescing zero page register [ zp ZP_WORD:10 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 mul_u16_sel::return#11 sin16s_gen::x5#0 mul_u16_sel::return#12 ] ] with [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ] ]
-Coalescing zero page register [ zp ZP_DWORD:23 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 sin16s_gen::$7 ] ] with [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 mul_u16_sel::$1 ] ]
-Coalescing zero page register [ zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul16u::b#0 ] ] with [ zp ZP_WORD:93 [ mul_u16_sel::return#13 sin16s_gen::x5_128#0 mul_u16_sel::return#14 ] ]
-Coalescing zero page register [ zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul16u::b#0 mul_u16_sel::return#13 sin16s_gen::x5_128#0 mul_u16_sel::return#14 ] ] with [ zp ZP_WORD:118 [ div32u16u::quotient_hi#0 ] ]
-Allocated (was zp ZP_WORD:10) zp ZP_WORD:8 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 mul_u16_sel::return#11 sin16s_gen::x5#0 mul_u16_sel::return#12 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ]
-Allocated (was zp ZP_DWORD:14) zp ZP_DWORD:10 [ sin16s_gen::x#10 sin16s_gen::x#1 ]
-Allocated (was zp ZP_DWORD:23) zp ZP_DWORD:14 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 sin16s_gen::$7 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 mul_u16_sel::$1 ]
-Allocated (was zp ZP_WORD:31) zp ZP_WORD:18 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul16u::b#0 mul_u16_sel::return#13 sin16s_gen::x5_128#0 mul_u16_sel::return#14 div32u16u::quotient_hi#0 ]
-Allocated (was zp ZP_WORD:34) zp ZP_WORD:20 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ]
-Allocated (was zp ZP_DWORD:40) zp ZP_DWORD:22 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ]
-Allocated (was zp ZP_DWORD:57) zp ZP_DWORD:26 [ div32u16u::return#0 sin16s_gen::step#0 div32u16u::return#1 ]
-Allocated (was zp ZP_WORD:69) zp ZP_WORD:30 [ sin16s_gen::x1#0 ]
+Coalescing zero page register [ zp ZP_WORD:2 [ main::st1#2 main::st1#1 print_cls::sc#2 print_cls::sc#1 ] ] with [ zp ZP_WORD:18 [ sin16s_gen::sintab#2 sin16s_gen::sintab#1 ] ]
+Coalescing zero page register [ zp ZP_WORD:2 [ main::st1#2 main::st1#1 print_cls::sc#2 print_cls::sc#1 sin16s_gen::sintab#2 sin16s_gen::sintab#1 ] ] with [ zp ZP_WORD:44 [ divr16u::divisor#6 ] ]
+Coalescing zero page register [ zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ] ] with [ zp ZP_WORD:20 [ sin16s_gen::i#2 sin16s_gen::i#1 ] ]
+Coalescing zero page register [ zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 sin16s_gen::i#2 sin16s_gen::i#1 ] ] with [ zp ZP_WORD:46 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 rem16u#1 ] ]
+Coalescing zero page register [ zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 main::sw#0 ] ] with [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 sin16s::usinx#0 sin16s::x3_6#0 mul_u16_sel::return#10 ] ]
+Coalescing zero page register [ zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 main::sw#0 sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 sin16s::usinx#0 sin16s::x3_6#0 mul_u16_sel::return#10 ] ] with [ zp ZP_WORD:48 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] ]
+Coalescing zero page register [ zp ZP_WORD:10 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 ] ] with [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 mul_u16_sel::return#11 sin16s::x5#0 mul_u16_sel::return#12 ] ]
+Coalescing zero page register [ zp ZP_WORD:10 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 mul_u16_sel::return#11 sin16s::x5#0 mul_u16_sel::return#12 ] ] with [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ] ]
+Coalescing zero page register [ zp ZP_DWORD:23 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 sin16s::$6 ] ] with [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 mul_u16_sel::$1 ] ]
+Coalescing zero page register [ zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 mul16u::b#0 ] ] with [ zp ZP_WORD:97 [ mul_u16_sel::return#13 sin16s::x5_128#0 mul_u16_sel::return#14 ] ]
+Coalescing zero page register [ zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 mul16u::b#0 mul_u16_sel::return#13 sin16s::x5_128#0 mul_u16_sel::return#14 ] ] with [ zp ZP_WORD:122 [ div32u16u::quotient_hi#0 ] ]
+Allocated (was zp ZP_WORD:10) zp ZP_WORD:8 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 mul_u16_sel::return#11 sin16s::x5#0 mul_u16_sel::return#12 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ]
+Allocated (was zp ZP_DWORD:14) zp ZP_DWORD:10 [ sin16s_gen::x#2 sin16s_gen::x#1 ]
+Allocated (was zp ZP_DWORD:23) zp ZP_DWORD:14 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 sin16s::$6 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 mul_u16_sel::$1 ]
+Allocated (was zp ZP_WORD:31) zp ZP_WORD:18 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 mul16u::b#0 mul_u16_sel::return#13 sin16s::x5_128#0 mul_u16_sel::return#14 div32u16u::quotient_hi#0 ]
+Allocated (was zp ZP_BYTE:33) zp ZP_BYTE:20 [ mul_u16_sel::select#6 ]
+Allocated (was zp ZP_WORD:34) zp ZP_WORD:21 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ]
+Allocated (was zp ZP_DWORD:40) zp ZP_DWORD:23 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ]
+Allocated (was zp ZP_DWORD:57) zp ZP_DWORD:27 [ div32u16u::return#0 sin16s_gen::step#0 div32u16u::return#1 ]
+Allocated (was zp ZP_WORD:73) zp ZP_WORD:31 [ sin16s::x1#0 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
 //SEG0 Basic Upstart
@@ -7103,17 +7071,17 @@ ASSEMBLER BEFORE OPTIMIZATION
   .label char_cursor = 8
 //SEG2 @begin
 bbegin:
-//SEG3 [1] phi from @begin to @25 [phi:@begin->@25]
-b25_from_bbegin:
-  jmp b25
-//SEG4 @25
-b25:
+//SEG3 [1] phi from @begin to @26 [phi:@begin->@26]
+b26_from_bbegin:
+  jmp b26
+//SEG4 @26
+b26:
 //SEG5 [2] call main param-assignment [ ] ( )
-//SEG6 [4] phi from @25 to main [phi:@25->main]
-main_from_b25:
+//SEG6 [4] phi from @26 to main [phi:@26->main]
+main_from_b26:
   jsr main
-//SEG7 [3] phi from @25 to @end [phi:@25->@end]
-bend_from_b25:
+//SEG7 [3] phi from @26 to @end [phi:@26->@end]
+bend_from_b26:
   jmp bend
 //SEG8 @end
 bend:
@@ -7447,45 +7415,35 @@ print_cls: {
 }
 //SEG122 sin16s_gen
 sin16s_gen: {
-    .label _7 = $e
-    .label step = $1a
-    .label xp = $e
-    .label x1 = $1e
-    .label x2 = 8
-    .label x3 = 8
-    .label x3_6 = 6
-    .label usinx = 6
-    .label x4 = 8
-    .label x5 = 8
-    .label x5_128 = $12
+    .label _1 = 6
+    .label step = $1b
     .label sintab = 2
     .label x = $a
     .label i = 4
-    .label sinx = 6
   //SEG123 [59] call div32u16u param-assignment [ div32u16u::return#1 ] ( main:2::sin16s_gen:5 [ div32u16u::return#1 ] )
-  //SEG124 [131] phi from sin16s_gen to div32u16u [phi:sin16s_gen->div32u16u]
+  //SEG124 [135] phi from sin16s_gen to div32u16u [phi:sin16s_gen->div32u16u]
   div32u16u_from_sin16s_gen:
     jsr div32u16u
   //SEG125 [60] (dword) div32u16u::return#0 ← (dword) div32u16u::return#1 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] )
-    // (dword) div32u16u::return#0 = (dword) div32u16u::return#1  // register copy zp ZP_DWORD:26
-    jmp b9
-  //SEG126 sin16s_gen::@9
-  b9:
+    // (dword) div32u16u::return#0 = (dword) div32u16u::return#1  // register copy zp ZP_DWORD:27
+    jmp b3
+  //SEG126 sin16s_gen::@3
+  b3:
   //SEG127 [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#0 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] )
-    // (dword) sin16s_gen::step#0 = (dword) div32u16u::return#0  // register copy zp ZP_DWORD:26
-  //SEG128 [62] phi from sin16s_gen::@9 to sin16s_gen::@1 [phi:sin16s_gen::@9->sin16s_gen::@1]
-  b1_from_b9:
-  //SEG129 [62] phi (word) sin16s_gen::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@9->sin16s_gen::@1#0] -- vwuz1=vbuc1 
+    // (dword) sin16s_gen::step#0 = (dword) div32u16u::return#0  // register copy zp ZP_DWORD:27
+  //SEG128 [62] phi from sin16s_gen::@3 to sin16s_gen::@1 [phi:sin16s_gen::@3->sin16s_gen::@1]
+  b1_from_b3:
+  //SEG129 [62] phi (word) sin16s_gen::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->sin16s_gen::@1#0] -- vwuz1=vbuc1 
     lda #<0
     sta i
     lda #>0
     sta i+1
-  //SEG130 [62] phi (signed word*) sin16s_gen::sintab#10 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@9->sin16s_gen::@1#1] -- pwsz1=pwsc1 
+  //SEG130 [62] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 
     lda #<main.sintab1
     sta sintab
     lda #>main.sintab1
     sta sintab+1
-  //SEG131 [62] phi (dword) sin16s_gen::x#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@9->sin16s_gen::@1#2] -- vduz1=vbuc1 
+  //SEG131 [62] phi (dword) sin16s_gen::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->sin16s_gen::@1#2] -- vduz1=vbuc1 
     lda #0
     sta x
     lda #0
@@ -7495,304 +7453,38 @@ sin16s_gen: {
     jmp b1
   //SEG132 [62] phi from sin16s_gen::@4 to sin16s_gen::@1 [phi:sin16s_gen::@4->sin16s_gen::@1]
   b1_from_b4:
-  //SEG133 [62] phi (word) sin16s_gen::i#10 = (word) sin16s_gen::i#1 [phi:sin16s_gen::@4->sin16s_gen::@1#0] -- register_copy 
-  //SEG134 [62] phi (signed word*) sin16s_gen::sintab#10 = (signed word*) sin16s_gen::sintab#1 [phi:sin16s_gen::@4->sin16s_gen::@1#1] -- register_copy 
-  //SEG135 [62] phi (dword) sin16s_gen::x#10 = (dword) sin16s_gen::x#1 [phi:sin16s_gen::@4->sin16s_gen::@1#2] -- register_copy 
+  //SEG133 [62] phi (word) sin16s_gen::i#2 = (word) sin16s_gen::i#1 [phi:sin16s_gen::@4->sin16s_gen::@1#0] -- register_copy 
+  //SEG134 [62] phi (signed word*) sin16s_gen::sintab#2 = (signed word*) sin16s_gen::sintab#1 [phi:sin16s_gen::@4->sin16s_gen::@1#1] -- register_copy 
+  //SEG135 [62] phi (dword) sin16s_gen::x#2 = (dword) sin16s_gen::x#1 [phi:sin16s_gen::@4->sin16s_gen::@1#2] -- register_copy 
     jmp b1
   //SEG136 sin16s_gen::@1
   b1:
-  //SEG137 [63] if((dword) sin16s_gen::x#10<(const dword) PI_u4f28#0) goto sin16s_gen::@17 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) -- vduz1_lt_vduc1_then_la1 
-    lda x+3
-    cmp #>PI_u4f28>>$10
-    bcc b17
-    bne !+
-    lda x+2
-    cmp #<PI_u4f28>>$10
-    bcc b17
-    bne !+
-    lda x+1
-    cmp #>PI_u4f28
-    bcc b17
-    bne !+
+  //SEG137 [63] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ) -- vduz1=vduz2 
     lda x
-    cmp #<PI_u4f28
-    bcc b17
-  !:
-    jmp b5
-  //SEG138 sin16s_gen::@5
-  b5:
-  //SEG139 [64] (dword) sin16s_gen::xp#1 ← (dword) sin16s_gen::x#10 - (const dword) PI_u4f28#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ) -- vduz1=vduz2_minus_vduc1 
-    lda x
-    sec
-    sbc #<PI_u4f28
-    sta xp
+    sta sin16s.x
     lda x+1
-    sbc #>PI_u4f28
-    sta xp+1
+    sta sin16s.x+1
     lda x+2
-    sbc #<PI_u4f28>>$10
-    sta xp+2
+    sta sin16s.x+2
     lda x+3
-    sbc #>PI_u4f28>>$10
-    sta xp+3
-  //SEG140 [65] phi from sin16s_gen::@5 to sin16s_gen::@2 [phi:sin16s_gen::@5->sin16s_gen::@2]
-  b2_from_b5:
-  //SEG141 [65] phi (byte) sin16s_gen::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@5->sin16s_gen::@2#0] -- vbuyy=vbuc1 
-    ldy #1
-  //SEG142 [65] phi (dword) sin16s_gen::xp#3 = (dword) sin16s_gen::xp#1 [phi:sin16s_gen::@5->sin16s_gen::@2#1] -- register_copy 
-    jmp b2
-  //SEG143 sin16s_gen::@2
-  b2:
-  //SEG144 [66] if((dword) sin16s_gen::xp#3<(const dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) -- vduz1_lt_vduc1_then_la1 
-    lda xp+3
-    cmp #>PI_HALF_u4f28>>$10
-    bcc b3_from_b2
-    bne !+
-    lda xp+2
-    cmp #<PI_HALF_u4f28>>$10
-    bcc b3_from_b2
-    bne !+
-    lda xp+1
-    cmp #>PI_HALF_u4f28
-    bcc b3_from_b2
-    bne !+
-    lda xp
-    cmp #<PI_HALF_u4f28
-    bcc b3_from_b2
-  !:
-    jmp b6
-  //SEG145 sin16s_gen::@6
-  b6:
-  //SEG146 [67] (dword) sin16s_gen::xp#2 ← (const dword) PI_u4f28#0 - (dword) sin16s_gen::xp#3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ) -- vduz1=vduc1_minus_vduz1 
-    lda #<PI_u4f28
-    sec
-    sbc xp
-    sta xp
-    lda #>PI_u4f28
-    sbc xp+1
-    sta xp+1
-    lda #<PI_u4f28>>$10
-    sbc xp+2
-    sta xp+2
-    lda #>PI_u4f28>>$10
-    sbc xp+3
-    sta xp+3
-  //SEG147 [68] phi from sin16s_gen::@2 sin16s_gen::@6 to sin16s_gen::@3 [phi:sin16s_gen::@2/sin16s_gen::@6->sin16s_gen::@3]
-  b3_from_b2:
-  b3_from_b6:
-  //SEG148 [68] phi (dword) sin16s_gen::xp#5 = (dword) sin16s_gen::xp#3 [phi:sin16s_gen::@2/sin16s_gen::@6->sin16s_gen::@3#0] -- register_copy 
-    jmp b3
-  //SEG149 sin16s_gen::@3
-  b3:
-  //SEG150 [69] (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ) -- vduz1=vduz1_rol_3 
-    ldx #3
-  !:
-    asl _7
-    rol _7+1
-    rol _7+2
-    rol _7+3
-    dex
-    bne !-
-  //SEG151 [70] (word) sin16s_gen::x1#0 ← > (dword~) sin16s_gen::$7 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ) -- vwuz1=_hi_vduz2 
-    lda _7+2
-    sta x1
-    lda _7+3
-    sta x1+1
-  //SEG152 [71] (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v1
-    lda x1+1
-    sta mul_u16_sel.v1+1
-  //SEG153 [72] (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-  //SEG154 [73] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] )
-  //SEG155 [112] phi from sin16s_gen::@3 to mul_u16_sel [phi:sin16s_gen::@3->mul_u16_sel]
-  mul_u16_sel_from_b3:
-  //SEG156 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->mul_u16_sel#0] -- vbuxx=vbuc1 
-    ldx #0
-  //SEG157 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#0 [phi:sin16s_gen::@3->mul_u16_sel#1] -- register_copy 
-  //SEG158 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#0 [phi:sin16s_gen::@3->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG159 [74] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return+1
-    jmp b10
-  //SEG160 sin16s_gen::@10
-  b10:
-  //SEG161 [75] (word) sin16s_gen::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] )
-    // (word) sin16s_gen::x2#0 = (word) mul_u16_sel::return#0  // register copy zp ZP_WORD:8
-  //SEG162 [76] (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] )
-    // (word) mul_u16_sel::v1#1 = (word) sin16s_gen::x2#0  // register copy zp ZP_WORD:8
-  //SEG163 [77] (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-  //SEG164 [78] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] )
-  //SEG165 [112] phi from sin16s_gen::@10 to mul_u16_sel [phi:sin16s_gen::@10->mul_u16_sel]
-  mul_u16_sel_from_b10:
-  //SEG166 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@10->mul_u16_sel#0] -- vbuxx=vbuc1 
-    ldx #1
-  //SEG167 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#1 [phi:sin16s_gen::@10->mul_u16_sel#1] -- register_copy 
-  //SEG168 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#1 [phi:sin16s_gen::@10->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG169 [79] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return+1
-    jmp b11
-  //SEG170 sin16s_gen::@11
-  b11:
-  //SEG171 [80] (word) sin16s_gen::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] )
-    // (word) sin16s_gen::x3#0 = (word) mul_u16_sel::return#1  // register copy zp ZP_WORD:8
-  //SEG172 [81] (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] )
-    // (word) mul_u16_sel::v1#2 = (word) sin16s_gen::x3#0  // register copy zp ZP_WORD:8
-  //SEG173 [82] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] )
-  //SEG174 [112] phi from sin16s_gen::@11 to mul_u16_sel [phi:sin16s_gen::@11->mul_u16_sel]
-  mul_u16_sel_from_b11:
-  //SEG175 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@11->mul_u16_sel#0] -- vbuxx=vbuc1 
-    ldx #1
-  //SEG176 [112] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s_gen::@11->mul_u16_sel#1] -- vwuz1=vwuc1 
-    lda #<$10000/6
-    sta mul_u16_sel.v2
-    lda #>$10000/6
-    sta mul_u16_sel.v2+1
-  //SEG177 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#2 [phi:sin16s_gen::@11->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG178 [83] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return_10
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return_10+1
-    jmp b12
-  //SEG179 sin16s_gen::@12
-  b12:
-  //SEG180 [84] (word) sin16s_gen::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] )
-    // (word) sin16s_gen::x3_6#0 = (word) mul_u16_sel::return#10  // register copy zp ZP_WORD:6
-  //SEG181 [85] (word) sin16s_gen::usinx#0 ← (word) sin16s_gen::x1#0 - (word) sin16s_gen::x3_6#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ) -- vwuz1=vwuz2_minus_vwuz1 
-    lda x1
-    sec
-    sbc usinx
-    sta usinx
-    lda x1+1
-    sbc usinx+1
-    sta usinx+1
-  //SEG182 [86] (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] )
-    // (word) mul_u16_sel::v1#3 = (word) sin16s_gen::x3#0  // register copy zp ZP_WORD:8
-  //SEG183 [87] (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-  //SEG184 [88] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  //SEG185 [112] phi from sin16s_gen::@12 to mul_u16_sel [phi:sin16s_gen::@12->mul_u16_sel]
-  mul_u16_sel_from_b12:
-  //SEG186 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@12->mul_u16_sel#0] -- vbuxx=vbuc1 
-    ldx #0
-  //SEG187 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#3 [phi:sin16s_gen::@12->mul_u16_sel#1] -- register_copy 
-  //SEG188 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#3 [phi:sin16s_gen::@12->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG189 [89] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return+1
-    jmp b13
-  //SEG190 sin16s_gen::@13
-  b13:
-  //SEG191 [90] (word) sin16s_gen::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] )
-    // (word) sin16s_gen::x4#0 = (word) mul_u16_sel::return#11  // register copy zp ZP_WORD:8
-  //SEG192 [91] (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] )
-    // (word) mul_u16_sel::v1#4 = (word) sin16s_gen::x4#0  // register copy zp ZP_WORD:8
-  //SEG193 [92] (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-  //SEG194 [93] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  //SEG195 [112] phi from sin16s_gen::@13 to mul_u16_sel [phi:sin16s_gen::@13->mul_u16_sel]
-  mul_u16_sel_from_b13:
-  //SEG196 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@13->mul_u16_sel#0] -- vbuxx=vbuc1 
-    ldx #0
-  //SEG197 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#4 [phi:sin16s_gen::@13->mul_u16_sel#1] -- register_copy 
-  //SEG198 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#4 [phi:sin16s_gen::@13->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG199 [94] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return+1
-    jmp b14
-  //SEG200 sin16s_gen::@14
-  b14:
-  //SEG201 [95] (word) sin16s_gen::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] )
-    // (word) sin16s_gen::x5#0 = (word) mul_u16_sel::return#12  // register copy zp ZP_WORD:8
-  //SEG202 [96] (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] )
-    // (word) mul_u16_sel::v1#5 = (word) sin16s_gen::x5#0  // register copy zp ZP_WORD:8
-  //SEG203 [97] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  //SEG204 [112] phi from sin16s_gen::@14 to mul_u16_sel [phi:sin16s_gen::@14->mul_u16_sel]
-  mul_u16_sel_from_b14:
-  //SEG205 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:sin16s_gen::@14->mul_u16_sel#0] -- vbuxx=vbuc1 
-    ldx #3
-  //SEG206 [112] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 [phi:sin16s_gen::@14->mul_u16_sel#1] -- vwuz1=vwuc1 
-    lda #<$10000/$80
-    sta mul_u16_sel.v2
-    lda #>$10000/$80
-    sta mul_u16_sel.v2+1
-  //SEG207 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#5 [phi:sin16s_gen::@14->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG208 [98] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] )
-    // (word) mul_u16_sel::return#13 = (word) mul_u16_sel::return#14  // register copy zp ZP_WORD:18
-    jmp b15
-  //SEG209 sin16s_gen::@15
-  b15:
-  //SEG210 [99] (word) sin16s_gen::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] )
-    // (word) sin16s_gen::x5_128#0 = (word) mul_u16_sel::return#13  // register copy zp ZP_WORD:18
-  //SEG211 [100] (word) sin16s_gen::usinx#1 ← (word) sin16s_gen::usinx#0 + (word) sin16s_gen::x5_128#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ) -- vwuz1=vwuz1_plus_vwuz2 
-    lda usinx
-    clc
-    adc x5_128
-    sta usinx
-    lda usinx+1
-    adc x5_128+1
-    sta usinx+1
-  //SEG212 [101] if((byte) sin16s_gen::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s_gen::@19 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ) -- vbuyy_eq_0_then_la1 
-    cpy #0
-    beq b19
-    jmp b7
-  //SEG213 sin16s_gen::@7
-  b7:
-  //SEG214 [102] (signed word) sin16s_gen::sinx#1 ← - (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ) -- vwsz1=_neg_vwsz1 
-    sec
-    lda sinx
-    eor #$ff
-    adc #0
-    sta sinx
-    lda sinx+1
-    eor #$ff
-    adc #0
-    sta sinx+1
-  //SEG215 [103] phi from sin16s_gen::@19 sin16s_gen::@7 to sin16s_gen::@4 [phi:sin16s_gen::@19/sin16s_gen::@7->sin16s_gen::@4]
-  b4_from_b19:
-  b4_from_b7:
-  //SEG216 [103] phi (signed word) sin16s_gen::sinx#2 = (signed word~) sin16s_gen::sinx#3 [phi:sin16s_gen::@19/sin16s_gen::@7->sin16s_gen::@4#0] -- register_copy 
+    sta sin16s.x+3
+  //SEG138 [64] call sin16s param-assignment [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
+    jsr sin16s
+  //SEG139 [65] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] )
+    // (signed word) sin16s::return#0 = (signed word) sin16s::return#1  // register copy zp ZP_WORD:6
     jmp b4
-  //SEG217 sin16s_gen::@4
+  //SEG140 sin16s_gen::@4
   b4:
-  //SEG218 [104] *((signed word*) sin16s_gen::sintab#10) ← (signed word) sin16s_gen::sinx#2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) -- _deref_pwsz1=vwsz2 
+  //SEG141 [66] (signed word~) sin16s_gen::$1 ← (signed word) sin16s::return#0 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] )
+    // (signed word~) sin16s_gen::$1 = (signed word) sin16s::return#0  // register copy zp ZP_WORD:6
+  //SEG142 [67] *((signed word*) sin16s_gen::sintab#2) ← (signed word~) sin16s_gen::$1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ) -- _deref_pwsz1=vwsz2 
     ldy #0
-    lda sinx
+    lda _1
     sta (sintab),y
     iny
-    lda sinx+1
+    lda _1+1
     sta (sintab),y
-  //SEG219 [105] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ) -- pwsz1=pwsz1_plus_vbuc1 
+  //SEG143 [68] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] ) -- pwsz1=pwsz1_plus_vbuc1 
     clc
     lda sintab
     adc #<2
@@ -7800,7 +7492,7 @@ sin16s_gen: {
     lda sintab+1
     adc #>2
     sta sintab+1
-  //SEG220 [106] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#10 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) -- vduz1=vduz1_plus_vduz2 
+  //SEG144 [69] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#2 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) -- vduz1=vduz1_plus_vduz2 
     lda x
     clc
     adc step
@@ -7814,12 +7506,12 @@ sin16s_gen: {
     lda x+3
     adc step+3
     sta x+3
-  //SEG221 [107] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#10 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) -- vwuz1=_inc_vwuz1 
+  //SEG145 [70] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#2 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) -- vwuz1=_inc_vwuz1 
     inc i
     bne !+
     inc i+1
   !:
-  //SEG222 [108] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) -- vwuz1_lt_vwuc1_then_la1 
+  //SEG146 [71] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) -- vwuz1_lt_vwuc1_then_la1 
     lda i+1
     cmp #>main.wavelength
     bcc b1_from_b4
@@ -7829,34 +7521,333 @@ sin16s_gen: {
     bcc b1_from_b4
   !:
     jmp breturn
-  //SEG223 sin16s_gen::@return
+  //SEG147 sin16s_gen::@return
   breturn:
-  //SEG224 [109] return  [ ] ( main:2::sin16s_gen:5 [ ] )
+  //SEG148 [72] return  [ ] ( main:2::sin16s_gen:5 [ ] )
     rts
-  //SEG225 sin16s_gen::@19
-  b19:
-  //SEG226 [110] (signed word~) sin16s_gen::sinx#3 ← (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] )
-    // (signed word~) sin16s_gen::sinx#3 = (signed word)(word) sin16s_gen::usinx#1  // register copy zp ZP_WORD:6
-    jmp b4_from_b19
-  //SEG227 sin16s_gen::@17
-  b17:
-  //SEG228 [111] (dword~) sin16s_gen::xp#7 ← (dword) sin16s_gen::x#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ) -- vduz1=vduz2 
-    lda x
-    sta xp
-    lda x+1
-    sta xp+1
-    lda x+2
-    sta xp+2
-    lda x+3
-    sta xp+3
-  //SEG229 [65] phi from sin16s_gen::@17 to sin16s_gen::@2 [phi:sin16s_gen::@17->sin16s_gen::@2]
-  b2_from_b17:
-  //SEG230 [65] phi (byte) sin16s_gen::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@17->sin16s_gen::@2#0] -- vbuyy=vbuc1 
-    ldy #0
-  //SEG231 [65] phi (dword) sin16s_gen::xp#3 = (dword~) sin16s_gen::xp#7 [phi:sin16s_gen::@17->sin16s_gen::@2#1] -- register_copy 
-    jmp b2
 }
-//SEG232 mul_u16_sel
+//SEG149 sin16s
+sin16s: {
+    .label _6 = $e
+    .label x = $e
+    .label return = 6
+    .label x1 = $1f
+    .label x2 = 8
+    .label x3 = 8
+    .label x3_6 = 6
+    .label usinx = 6
+    .label x4 = 8
+    .label x5 = 8
+    .label x5_128 = $12
+    .label sinx = 6
+  //SEG150 [73] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ) -- vduz1_lt_vduc1_then_la1 
+    lda x+3
+    cmp #>PI_u4f28>>$10
+    bcc b1_from_sin16s
+    bne !+
+    lda x+2
+    cmp #<PI_u4f28>>$10
+    bcc b1_from_sin16s
+    bne !+
+    lda x+1
+    cmp #>PI_u4f28
+    bcc b1_from_sin16s
+    bne !+
+    lda x
+    cmp #<PI_u4f28
+    bcc b1_from_sin16s
+  !:
+    jmp b4
+  //SEG151 sin16s::@4
+  b4:
+  //SEG152 [74] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#1 ] ) -- vduz1=vduz1_minus_vduc1 
+    lda x
+    sec
+    sbc #<PI_u4f28
+    sta x
+    lda x+1
+    sbc #>PI_u4f28
+    sta x+1
+    lda x+2
+    sbc #<PI_u4f28>>$10
+    sta x+2
+    lda x+3
+    sbc #>PI_u4f28>>$10
+    sta x+3
+  //SEG153 [75] phi from sin16s::@4 to sin16s::@1 [phi:sin16s::@4->sin16s::@1]
+  b1_from_b4:
+  //SEG154 [75] phi (byte) sin16s::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@4->sin16s::@1#0] -- vbuxx=vbuc1 
+    ldx #1
+  //SEG155 [75] phi (dword) sin16s::x#4 = (dword) sin16s::x#1 [phi:sin16s::@4->sin16s::@1#1] -- register_copy 
+    jmp b1
+  //SEG156 [75] phi from sin16s to sin16s::@1 [phi:sin16s->sin16s::@1]
+  b1_from_sin16s:
+  //SEG157 [75] phi (byte) sin16s::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s->sin16s::@1#0] -- vbuxx=vbuc1 
+    ldx #0
+  //SEG158 [75] phi (dword) sin16s::x#4 = (dword) sin16s::x#0 [phi:sin16s->sin16s::@1#1] -- register_copy 
+    jmp b1
+  //SEG159 sin16s::@1
+  b1:
+  //SEG160 [76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#4 sin16s::isUpper#10 ] ) -- vduz1_lt_vduc1_then_la1 
+    lda x+3
+    cmp #>PI_HALF_u4f28>>$10
+    bcc b2_from_b1
+    bne !+
+    lda x+2
+    cmp #<PI_HALF_u4f28>>$10
+    bcc b2_from_b1
+    bne !+
+    lda x+1
+    cmp #>PI_HALF_u4f28
+    bcc b2_from_b1
+    bne !+
+    lda x
+    cmp #<PI_HALF_u4f28
+    bcc b2_from_b1
+  !:
+    jmp b5
+  //SEG161 sin16s::@5
+  b5:
+  //SEG162 [77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#10 sin16s::x#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x#2 ] ) -- vduz1=vduc1_minus_vduz1 
+    lda #<PI_u4f28
+    sec
+    sbc x
+    sta x
+    lda #>PI_u4f28
+    sbc x+1
+    sta x+1
+    lda #<PI_u4f28>>$10
+    sbc x+2
+    sta x+2
+    lda #>PI_u4f28>>$10
+    sbc x+3
+    sta x+3
+  //SEG163 [78] phi from sin16s::@1 sin16s::@5 to sin16s::@2 [phi:sin16s::@1/sin16s::@5->sin16s::@2]
+  b2_from_b1:
+  b2_from_b5:
+  //SEG164 [78] phi (dword) sin16s::x#6 = (dword) sin16s::x#4 [phi:sin16s::@1/sin16s::@5->sin16s::@2#0] -- register_copy 
+    jmp b2
+  //SEG165 sin16s::@2
+  b2:
+  //SEG166 [79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#10 sin16s::$6 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::$6 ] ) -- vduz1=vduz1_rol_3 
+    ldy #3
+  !:
+    asl _6
+    rol _6+1
+    rol _6+2
+    rol _6+3
+    dey
+    bne !-
+  //SEG167 [80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#10 sin16s::x1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 ] ) -- vwuz1=_hi_vduz2 
+    lda _6+2
+    sta x1
+    lda _6+3
+    sta x1+1
+  //SEG168 [81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v1
+    lda x1+1
+    sta mul_u16_sel.v1+1
+  //SEG169 [82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+  //SEG170 [83] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] )
+  //SEG171 [116] phi from sin16s::@2 to mul_u16_sel [phi:sin16s::@2->mul_u16_sel]
+  mul_u16_sel_from_b2:
+  //SEG172 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@2->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #0
+    sta mul_u16_sel.select
+  //SEG173 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#0 [phi:sin16s::@2->mul_u16_sel#1] -- register_copy 
+  //SEG174 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#0 [phi:sin16s::@2->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG175 [84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#0 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return+1
+    jmp b8
+  //SEG176 sin16s::@8
+  b8:
+  //SEG177 [85] (word) sin16s::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x2#0 ] )
+    // (word) sin16s::x2#0 = (word) mul_u16_sel::return#0  // register copy zp ZP_WORD:8
+  //SEG178 [86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 ] )
+    // (word) mul_u16_sel::v1#1 = (word) sin16s::x2#0  // register copy zp ZP_WORD:8
+  //SEG179 [87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+  //SEG180 [88] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] )
+  //SEG181 [116] phi from sin16s::@8 to mul_u16_sel [phi:sin16s::@8->mul_u16_sel]
+  mul_u16_sel_from_b8:
+  //SEG182 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@8->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #1
+    sta mul_u16_sel.select
+  //SEG183 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#1 [phi:sin16s::@8->mul_u16_sel#1] -- register_copy 
+  //SEG184 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#1 [phi:sin16s::@8->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG185 [89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#1 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return+1
+    jmp b9
+  //SEG186 sin16s::@9
+  b9:
+  //SEG187 [90] (word) sin16s::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 ] )
+    // (word) sin16s::x3#0 = (word) mul_u16_sel::return#1  // register copy zp ZP_WORD:8
+  //SEG188 [91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] )
+    // (word) mul_u16_sel::v1#2 = (word) sin16s::x3#0  // register copy zp ZP_WORD:8
+  //SEG189 [92] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] )
+  //SEG190 [116] phi from sin16s::@9 to mul_u16_sel [phi:sin16s::@9->mul_u16_sel]
+  mul_u16_sel_from_b9:
+  //SEG191 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #1
+    sta mul_u16_sel.select
+  //SEG192 [116] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mul_u16_sel#1] -- vwuz1=vwuc1 
+    lda #<$10000/6
+    sta mul_u16_sel.v2
+    lda #>$10000/6
+    sta mul_u16_sel.v2+1
+  //SEG193 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#2 [phi:sin16s::@9->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG194 [93] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return_10
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return_10+1
+    jmp b10
+  //SEG195 sin16s::@10
+  b10:
+  //SEG196 [94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] )
+    // (word) sin16s::x3_6#0 = (word) mul_u16_sel::return#10  // register copy zp ZP_WORD:6
+  //SEG197 [95] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ) -- vwuz1=vwuz2_minus_vwuz1 
+    lda x1
+    sec
+    sbc usinx
+    sta usinx
+    lda x1+1
+    sbc usinx+1
+    sta usinx+1
+  //SEG198 [96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] )
+    // (word) mul_u16_sel::v1#3 = (word) sin16s::x3#0  // register copy zp ZP_WORD:8
+  //SEG199 [97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+  //SEG200 [98] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  //SEG201 [116] phi from sin16s::@10 to mul_u16_sel [phi:sin16s::@10->mul_u16_sel]
+  mul_u16_sel_from_b10:
+  //SEG202 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@10->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #0
+    sta mul_u16_sel.select
+  //SEG203 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#3 [phi:sin16s::@10->mul_u16_sel#1] -- register_copy 
+  //SEG204 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#3 [phi:sin16s::@10->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG205 [99] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return+1
+    jmp b11
+  //SEG206 sin16s::@11
+  b11:
+  //SEG207 [100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] )
+    // (word) sin16s::x4#0 = (word) mul_u16_sel::return#11  // register copy zp ZP_WORD:8
+  //SEG208 [101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] )
+    // (word) mul_u16_sel::v1#4 = (word) sin16s::x4#0  // register copy zp ZP_WORD:8
+  //SEG209 [102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+  //SEG210 [103] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  //SEG211 [116] phi from sin16s::@11 to mul_u16_sel [phi:sin16s::@11->mul_u16_sel]
+  mul_u16_sel_from_b11:
+  //SEG212 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@11->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #0
+    sta mul_u16_sel.select
+  //SEG213 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#4 [phi:sin16s::@11->mul_u16_sel#1] -- register_copy 
+  //SEG214 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#4 [phi:sin16s::@11->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG215 [104] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return+1
+    jmp b12
+  //SEG216 sin16s::@12
+  b12:
+  //SEG217 [105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5#0 ] )
+    // (word) sin16s::x5#0 = (word) mul_u16_sel::return#12  // register copy zp ZP_WORD:8
+  //SEG218 [106] (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] )
+    // (word) mul_u16_sel::v1#5 = (word) sin16s::x5#0  // register copy zp ZP_WORD:8
+  //SEG219 [107] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  //SEG220 [116] phi from sin16s::@12 to mul_u16_sel [phi:sin16s::@12->mul_u16_sel]
+  mul_u16_sel_from_b12:
+  //SEG221 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:sin16s::@12->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #3
+    sta mul_u16_sel.select
+  //SEG222 [116] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 [phi:sin16s::@12->mul_u16_sel#1] -- vwuz1=vwuc1 
+    lda #<$10000/$80
+    sta mul_u16_sel.v2
+    lda #>$10000/$80
+    sta mul_u16_sel.v2+1
+  //SEG223 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#5 [phi:sin16s::@12->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG224 [108] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] )
+    // (word) mul_u16_sel::return#13 = (word) mul_u16_sel::return#14  // register copy zp ZP_WORD:18
+    jmp b13
+  //SEG225 sin16s::@13
+  b13:
+  //SEG226 [109] (word) sin16s::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5_128#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5_128#0 ] )
+    // (word) sin16s::x5_128#0 = (word) mul_u16_sel::return#13  // register copy zp ZP_WORD:18
+  //SEG227 [110] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#10 sin16s::usinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#1 ] ) -- vwuz1=vwuz1_plus_vwuz2 
+    lda usinx
+    clc
+    adc x5_128
+    sta usinx
+    lda usinx+1
+    adc x5_128+1
+    sta usinx+1
+  //SEG228 [111] if((byte) sin16s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@16 [ sin16s::usinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::usinx#1 ] ) -- vbuxx_eq_0_then_la1 
+    cpx #0
+    beq b16
+    jmp b6
+  //SEG229 sin16s::@6
+  b6:
+  //SEG230 [112] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::sinx#1 ] ) -- vwsz1=_neg_vwsz1 
+    sec
+    lda sinx
+    eor #$ff
+    adc #0
+    sta sinx
+    lda sinx+1
+    eor #$ff
+    adc #0
+    sta sinx+1
+  //SEG231 [113] phi from sin16s::@16 sin16s::@6 to sin16s::@3 [phi:sin16s::@16/sin16s::@6->sin16s::@3]
+  b3_from_b16:
+  b3_from_b6:
+  //SEG232 [113] phi (signed word) sin16s::return#1 = (signed word~) sin16s::return#5 [phi:sin16s::@16/sin16s::@6->sin16s::@3#0] -- register_copy 
+    jmp b3
+  //SEG233 sin16s::@3
+  b3:
+    jmp breturn
+  //SEG234 sin16s::@return
+  breturn:
+  //SEG235 [114] return  [ sin16s::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
+    rts
+  //SEG236 sin16s::@16
+  b16:
+  //SEG237 [115] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1 [ sin16s::return#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#5 ] )
+    // (signed word~) sin16s::return#5 = (signed word)(word) sin16s::usinx#1  // register copy zp ZP_WORD:6
+    jmp b3_from_b16
+}
+//SEG238 mul_u16_sel
 mul_u16_sel: {
     .label _0 = $e
     .label _1 = $e
@@ -7865,53 +7856,55 @@ mul_u16_sel: {
     .label return = 8
     .label return_10 = 6
     .label return_13 = $12
+    .label select = $14
     .label return_14 = $12
-  //SEG233 [113] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) -- vwuz1=vwuz2 
+  //SEG239 [117] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) -- vwuz1=vwuz2 
     lda v1
     sta mul16u.a
     lda v1+1
     sta mul16u.a+1
-  //SEG234 [114] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] )
+  //SEG240 [118] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] )
     // (word) mul16u::b#0 = (word) mul_u16_sel::v2#6  // register copy zp ZP_WORD:18
-  //SEG235 [115] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
+  //SEG241 [119] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
     jsr mul16u
-  //SEG236 [116] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] )
+  //SEG242 [120] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] )
     // (dword) mul16u::return#2 = (dword) mul16u::res#2  // register copy zp ZP_DWORD:14
     jmp b2
-  //SEG237 mul_u16_sel::@2
+  //SEG243 mul_u16_sel::@2
   b2:
-  //SEG238 [117] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] )
+  //SEG244 [121] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] )
     // (dword~) mul_u16_sel::$0 = (dword) mul16u::return#2  // register copy zp ZP_DWORD:14
-  //SEG239 [118] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] ) -- vduz1=vduz1_rol_vbuxx 
-    cpx #0
+  //SEG245 [122] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] ) -- vduz1=vduz1_rol_vbuz2 
+    ldy select
+    cpy #0
     beq !e+
   !:
     asl _1
     rol _1+1
     rol _1+2
     rol _1+3
-    dex
+    dey
     bne !-
   !e:
-  //SEG240 [119] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) -- vwuz1=_hi_vduz2 
+  //SEG246 [123] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) -- vwuz1=_hi_vduz2 
     lda _1+2
     sta return_14
     lda _1+3
     sta return_14+1
     jmp breturn
-  //SEG241 mul_u16_sel::@return
+  //SEG247 mul_u16_sel::@return
   breturn:
-  //SEG242 [120] return  [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] )
+  //SEG248 [124] return  [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] )
     rts
 }
-//SEG243 mul16u
+//SEG249 mul16u
 mul16u: {
-    .label mb = $16
-    .label a = $14
+    .label mb = $17
+    .label a = $15
     .label res = $e
     .label b = $12
     .label return = $e
-  //SEG244 [121] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) -- vduz1=_dword_vwuz2 
+  //SEG250 [125] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) -- vduz1=_dword_vwuz2 
     lda b
     sta mb
     lda b+1
@@ -7919,42 +7912,42 @@ mul16u: {
     lda #0
     sta mb+2
     sta mb+3
-  //SEG245 [122] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1]
+  //SEG251 [126] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1]
   b1_from_mul16u:
-  //SEG246 [122] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#0 [phi:mul16u->mul16u::@1#0] -- register_copy 
-  //SEG247 [122] phi (dword) mul16u::res#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16u->mul16u::@1#1] -- vduz1=vbuc1 
+  //SEG252 [126] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#0 [phi:mul16u->mul16u::@1#0] -- register_copy 
+  //SEG253 [126] phi (dword) mul16u::res#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16u->mul16u::@1#1] -- vduz1=vbuc1 
     lda #0
     sta res
     lda #0
     sta res+1
     sta res+2
     sta res+3
-  //SEG248 [122] phi (word) mul16u::a#2 = (word) mul16u::a#1 [phi:mul16u->mul16u::@1#2] -- register_copy 
+  //SEG254 [126] phi (word) mul16u::a#2 = (word) mul16u::a#1 [phi:mul16u->mul16u::@1#2] -- register_copy 
     jmp b1
-  //SEG249 mul16u::@1
+  //SEG255 mul16u::@1
   b1:
-  //SEG250 [123] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vwuz1_neq_0_then_la1 
+  //SEG256 [127] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vwuz1_neq_0_then_la1 
     lda a
     bne b2
     lda a+1
     bne b2
     jmp breturn
-  //SEG251 mul16u::@return
+  //SEG257 mul16u::@return
   breturn:
-  //SEG252 [124] return  [ mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
+  //SEG258 [128] return  [ mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
     rts
-  //SEG253 mul16u::@2
+  //SEG259 mul16u::@2
   b2:
-  //SEG254 [125] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) -- vbuaa=vwuz1_band_vbuc1 
+  //SEG260 [129] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) -- vbuaa=vwuz1_band_vbuc1 
     lda a
     and #1
-  //SEG255 [126] if((byte~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vbuaa_eq_0_then_la1 
+  //SEG261 [130] if((byte~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vbuaa_eq_0_then_la1 
     cmp #0
     beq b4_from_b2
     jmp b7
-  //SEG256 mul16u::@7
+  //SEG262 mul16u::@7
   b7:
-  //SEG257 [127] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) -- vduz1=vduz1_plus_vduz2 
+  //SEG263 [131] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) -- vduz1=vduz1_plus_vduz2 
     lda res
     clc
     adc mb
@@ -7968,88 +7961,88 @@ mul16u: {
     lda res+3
     adc mb+3
     sta res+3
-  //SEG258 [128] phi from mul16u::@2 mul16u::@7 to mul16u::@4 [phi:mul16u::@2/mul16u::@7->mul16u::@4]
+  //SEG264 [132] phi from mul16u::@2 mul16u::@7 to mul16u::@4 [phi:mul16u::@2/mul16u::@7->mul16u::@4]
   b4_from_b2:
   b4_from_b7:
-  //SEG259 [128] phi (dword) mul16u::res#6 = (dword) mul16u::res#2 [phi:mul16u::@2/mul16u::@7->mul16u::@4#0] -- register_copy 
+  //SEG265 [132] phi (dword) mul16u::res#6 = (dword) mul16u::res#2 [phi:mul16u::@2/mul16u::@7->mul16u::@4#0] -- register_copy 
     jmp b4
-  //SEG260 mul16u::@4
+  //SEG266 mul16u::@4
   b4:
-  //SEG261 [129] (word) mul16u::a#0 ← (word) mul16u::a#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) -- vwuz1=vwuz1_ror_1 
+  //SEG267 [133] (word) mul16u::a#0 ← (word) mul16u::a#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) -- vwuz1=vwuz1_ror_1 
     clc
     ror a+1
     ror a
-  //SEG262 [130] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) -- vduz1=vduz1_rol_1 
+  //SEG268 [134] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) -- vduz1=vduz1_rol_1 
     asl mb
     rol mb+1
     rol mb+2
     rol mb+3
-  //SEG263 [122] phi from mul16u::@4 to mul16u::@1 [phi:mul16u::@4->mul16u::@1]
+  //SEG269 [126] phi from mul16u::@4 to mul16u::@1 [phi:mul16u::@4->mul16u::@1]
   b1_from_b4:
-  //SEG264 [122] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#1 [phi:mul16u::@4->mul16u::@1#0] -- register_copy 
-  //SEG265 [122] phi (dword) mul16u::res#2 = (dword) mul16u::res#6 [phi:mul16u::@4->mul16u::@1#1] -- register_copy 
-  //SEG266 [122] phi (word) mul16u::a#2 = (word) mul16u::a#0 [phi:mul16u::@4->mul16u::@1#2] -- register_copy 
+  //SEG270 [126] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#1 [phi:mul16u::@4->mul16u::@1#0] -- register_copy 
+  //SEG271 [126] phi (dword) mul16u::res#2 = (dword) mul16u::res#6 [phi:mul16u::@4->mul16u::@1#1] -- register_copy 
+  //SEG272 [126] phi (word) mul16u::a#2 = (word) mul16u::a#0 [phi:mul16u::@4->mul16u::@1#2] -- register_copy 
     jmp b1
 }
-//SEG267 div32u16u
+//SEG273 div32u16u
 div32u16u: {
-    .label return = $1a
+    .label return = $1b
     .label quotient_hi = $12
     .label quotient_lo = 8
-  //SEG268 [132] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] )
-  //SEG269 [141] phi from div32u16u to divr16u [phi:div32u16u->divr16u]
+  //SEG274 [136] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] )
+  //SEG275 [145] phi from div32u16u to divr16u [phi:div32u16u->divr16u]
   divr16u_from_div32u16u:
-  //SEG270 [141] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 
+  //SEG276 [145] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 
     lda #<main.wavelength
     sta divr16u.divisor
     lda #>main.wavelength
     sta divr16u.divisor+1
-  //SEG271 [141] phi (word) divr16u::dividend#5 = >(const dword) PI2_u4f28#0 [phi:div32u16u->divr16u#1] -- vwuz1=vwuc1 
+  //SEG277 [145] phi (word) divr16u::dividend#5 = >(const dword) PI2_u4f28#0 [phi:div32u16u->divr16u#1] -- vwuz1=vwuc1 
     lda #<PI2_u4f28>>16
     sta divr16u.dividend
     lda #>PI2_u4f28>>16
     sta divr16u.dividend+1
-  //SEG272 [141] phi (word) divr16u::rem#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div32u16u->divr16u#2] -- vwuz1=vbuc1 
+  //SEG278 [145] phi (word) divr16u::rem#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div32u16u->divr16u#2] -- vwuz1=vbuc1 
     lda #<0
     sta divr16u.rem
     lda #>0
     sta divr16u.rem+1
     jsr divr16u
-  //SEG273 [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] )
+  //SEG279 [137] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] )
     // (word) divr16u::return#2 = (word) divr16u::return#0  // register copy zp ZP_WORD:8
     jmp b2
-  //SEG274 div32u16u::@2
+  //SEG280 div32u16u::@2
   b2:
-  //SEG275 [134] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) -- vwuz1=vwuz2 
+  //SEG281 [138] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) -- vwuz1=vwuz2 
     lda divr16u.return
     sta quotient_hi
     lda divr16u.return+1
     sta quotient_hi+1
-  //SEG276 [135] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] )
+  //SEG282 [139] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] )
     // (word) divr16u::rem#4 = (word) rem16u#1  // register copy zp ZP_WORD:4
-  //SEG277 [136] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] )
-  //SEG278 [141] phi from div32u16u::@2 to divr16u [phi:div32u16u::@2->divr16u]
+  //SEG283 [140] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] )
+  //SEG284 [145] phi from div32u16u::@2 to divr16u [phi:div32u16u::@2->divr16u]
   divr16u_from_b2:
-  //SEG279 [141] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u::@2->divr16u#0] -- vwuz1=vwuc1 
+  //SEG285 [145] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u::@2->divr16u#0] -- vwuz1=vwuc1 
     lda #<main.wavelength
     sta divr16u.divisor
     lda #>main.wavelength
     sta divr16u.divisor+1
-  //SEG280 [141] phi (word) divr16u::dividend#5 = <(const dword) PI2_u4f28#0 [phi:div32u16u::@2->divr16u#1] -- vwuz1=vwuc1 
+  //SEG286 [145] phi (word) divr16u::dividend#5 = <(const dword) PI2_u4f28#0 [phi:div32u16u::@2->divr16u#1] -- vwuz1=vwuc1 
     lda #<PI2_u4f28&$ffff
     sta divr16u.dividend
     lda #>PI2_u4f28&$ffff
     sta divr16u.dividend+1
-  //SEG281 [141] phi (word) divr16u::rem#10 = (word) divr16u::rem#4 [phi:div32u16u::@2->divr16u#2] -- register_copy 
+  //SEG287 [145] phi (word) divr16u::rem#10 = (word) divr16u::rem#4 [phi:div32u16u::@2->divr16u#2] -- register_copy 
     jsr divr16u
-  //SEG282 [137] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] )
+  //SEG288 [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] )
     // (word) divr16u::return#3 = (word) divr16u::return#0  // register copy zp ZP_WORD:8
     jmp b3
-  //SEG283 div32u16u::@3
+  //SEG289 div32u16u::@3
   b3:
-  //SEG284 [138] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] )
+  //SEG290 [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] )
     // (word) div32u16u::quotient_lo#0 = (word) divr16u::return#3  // register copy zp ZP_WORD:8
-  //SEG285 [139] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) -- vduz1=vwuz2_dword_vwuz3 
+  //SEG291 [143] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) -- vduz1=vwuz2_dword_vwuz3 
     lda quotient_hi
     sta return+2
     lda quotient_hi+1
@@ -8059,70 +8052,70 @@ div32u16u: {
     lda quotient_lo+1
     sta return+1
     jmp breturn
-  //SEG286 div32u16u::@return
+  //SEG292 div32u16u::@return
   breturn:
-  //SEG287 [140] return  [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
+  //SEG293 [144] return  [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
     rts
 }
-//SEG288 divr16u
+//SEG294 divr16u
 divr16u: {
     .label rem = 4
     .label dividend = 6
     .label quotient = 8
     .label return = 8
     .label divisor = 2
-  //SEG289 [142] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1]
+  //SEG295 [146] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1]
   b1_from_divr16u:
-  //SEG290 [142] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuxx=vbuc1 
+  //SEG296 [146] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuxx=vbuc1 
     ldx #0
-  //SEG291 [142] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1 
+  //SEG297 [146] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1 
     lda #<0
     sta quotient
     lda #>0
     sta quotient+1
-  //SEG292 [142] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#5 [phi:divr16u->divr16u::@1#2] -- register_copy 
-  //SEG293 [142] phi (word) divr16u::rem#5 = (word) divr16u::rem#10 [phi:divr16u->divr16u::@1#3] -- register_copy 
+  //SEG298 [146] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#5 [phi:divr16u->divr16u::@1#2] -- register_copy 
+  //SEG299 [146] phi (word) divr16u::rem#5 = (word) divr16u::rem#10 [phi:divr16u->divr16u::@1#3] -- register_copy 
     jmp b1
-  //SEG294 [142] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1]
+  //SEG300 [146] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1]
   b1_from_b3:
-  //SEG295 [142] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy 
-  //SEG296 [142] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy 
-  //SEG297 [142] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy 
-  //SEG298 [142] phi (word) divr16u::rem#5 = (word) divr16u::rem#11 [phi:divr16u::@3->divr16u::@1#3] -- register_copy 
+  //SEG301 [146] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy 
+  //SEG302 [146] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy 
+  //SEG303 [146] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy 
+  //SEG304 [146] phi (word) divr16u::rem#5 = (word) divr16u::rem#11 [phi:divr16u::@3->divr16u::@1#3] -- register_copy 
     jmp b1
-  //SEG299 divr16u::@1
+  //SEG305 divr16u::@1
   b1:
-  //SEG300 [143] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vwuz1=vwuz1_rol_1 
+  //SEG306 [147] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vwuz1=vwuz1_rol_1 
     asl rem
     rol rem+1
-  //SEG301 [144] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) -- vbuaa=_hi_vwuz1 
+  //SEG307 [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) -- vbuaa=_hi_vwuz1 
     lda dividend+1
-  //SEG302 [145] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) -- vbuaa=vbuaa_band_vbuc1 
+  //SEG308 [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) -- vbuaa=vbuaa_band_vbuc1 
     and #$80
-  //SEG303 [146] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vbuaa_eq_0_then_la1 
+  //SEG309 [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vbuaa_eq_0_then_la1 
     cmp #0
     beq b2_from_b1
     jmp b4
-  //SEG304 divr16u::@4
+  //SEG310 divr16u::@4
   b4:
-  //SEG305 [147] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) -- vwuz1=vwuz1_bor_vbuc1 
+  //SEG311 [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) -- vwuz1=vwuz1_bor_vbuc1 
     lda #1
     ora rem
     sta rem
-  //SEG306 [148] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2]
+  //SEG312 [152] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2]
   b2_from_b1:
   b2_from_b4:
-  //SEG307 [148] phi (word) divr16u::rem#6 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy 
+  //SEG313 [152] phi (word) divr16u::rem#6 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy 
     jmp b2
-  //SEG308 divr16u::@2
+  //SEG314 divr16u::@2
   b2:
-  //SEG309 [149] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) -- vwuz1=vwuz1_rol_1 
+  //SEG315 [153] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) -- vwuz1=vwuz1_rol_1 
     asl dividend
     rol dividend+1
-  //SEG310 [150] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1=vwuz1_rol_1 
+  //SEG316 [154] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1=vwuz1_rol_1 
     asl quotient
     rol quotient+1
-  //SEG311 [151] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1_lt_vwuz2_then_la1 
+  //SEG317 [155] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1_lt_vwuz2_then_la1 
     lda rem+1
     cmp divisor+1
     bcc b3_from_b2
@@ -8132,14 +8125,14 @@ divr16u: {
     bcc b3_from_b2
   !:
     jmp b5
-  //SEG312 divr16u::@5
+  //SEG318 divr16u::@5
   b5:
-  //SEG313 [152] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) -- vwuz1=_inc_vwuz1 
+  //SEG319 [156] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) -- vwuz1=_inc_vwuz1 
     inc quotient
     bne !+
     inc quotient+1
   !:
-  //SEG314 [153] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) -- vwuz1=vwuz1_minus_vwuz2 
+  //SEG320 [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) -- vwuz1=vwuz1_minus_vwuz2 
     lda rem
     sec
     sbc divisor
@@ -8147,33 +8140,33 @@ divr16u: {
     lda rem+1
     sbc divisor+1
     sta rem+1
-  //SEG315 [154] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3]
+  //SEG321 [158] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3]
   b3_from_b2:
   b3_from_b5:
-  //SEG316 [154] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy 
-  //SEG317 [154] phi (word) divr16u::rem#11 = (word) divr16u::rem#6 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy 
+  //SEG322 [158] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy 
+  //SEG323 [158] phi (word) divr16u::rem#11 = (word) divr16u::rem#6 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy 
     jmp b3
-  //SEG318 divr16u::@3
+  //SEG324 divr16u::@3
   b3:
-  //SEG319 [155] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx=_inc_vbuxx 
+  //SEG325 [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx=_inc_vbuxx 
     inx
-  //SEG320 [156] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 
+  //SEG326 [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 
     cpx #$10
     bne b1_from_b3
     jmp b6
-  //SEG321 divr16u::@6
+  //SEG327 divr16u::@6
   b6:
-  //SEG322 [157] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
+  //SEG328 [161] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
     // (word) rem16u#1 = (word) divr16u::rem#11  // register copy zp ZP_WORD:4
     jmp breturn
-  //SEG323 divr16u::@return
+  //SEG329 divr16u::@return
   breturn:
-  //SEG324 [158] return  [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
+  //SEG330 [162] return  [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
     rts
 }
 
 ASSEMBLER OPTIMIZATIONS
-Removing instruction jmp b25
+Removing instruction jmp b26
 Removing instruction jmp bend
 Removing instruction jmp b5
 Removing instruction jmp b1
@@ -8195,20 +8188,22 @@ Removing instruction jmp breturn
 Removing instruction jmp breturn
 Removing instruction jmp b1
 Removing instruction jmp breturn
-Removing instruction jmp b9
+Removing instruction jmp b3
+Removing instruction jmp b1
+Removing instruction jmp b4
+Removing instruction jmp breturn
+Removing instruction jmp b4
 Removing instruction jmp b1
 Removing instruction jmp b5
 Removing instruction jmp b2
-Removing instruction jmp b6
-Removing instruction jmp b3
+Removing instruction jmp b8
+Removing instruction jmp b9
 Removing instruction jmp b10
 Removing instruction jmp b11
 Removing instruction jmp b12
 Removing instruction jmp b13
-Removing instruction jmp b14
-Removing instruction jmp b15
-Removing instruction jmp b7
-Removing instruction jmp b4
+Removing instruction jmp b6
+Removing instruction jmp b3
 Removing instruction jmp breturn
 Removing instruction jmp b2
 Removing instruction jmp breturn
@@ -8244,22 +8239,22 @@ Replacing label b1_from_b2 with b1
 Replacing label b1_from_print_sword with b1
 Replacing label b1_from_b1 with b1
 Replacing label b1_from_b1 with b1
-Replacing label b3_from_b2 with b3
-Replacing label b3_from_b2 with b3
-Replacing label b3_from_b2 with b3
-Replacing label b3_from_b2 with b3
 Replacing label b1_from_b4 with b1
 Replacing label b1_from_b4 with b1
-Replacing label b4_from_b19 with b4
+Replacing label b2_from_b1 with b2
+Replacing label b2_from_b1 with b2
+Replacing label b2_from_b1 with b2
+Replacing label b2_from_b1 with b2
+Replacing label b3_from_b16 with b3
 Replacing label b4_from_b2 with b4
 Replacing label b2_from_b1 with b2
 Replacing label b3_from_b2 with b3
 Replacing label b3_from_b2 with b3
 Replacing label b1_from_b3 with b1
 Removing instruction bbegin:
-Removing instruction b25_from_bbegin:
-Removing instruction main_from_b25:
-Removing instruction bend_from_b25:
+Removing instruction b26_from_bbegin:
+Removing instruction main_from_b26:
+Removing instruction bend_from_b26:
 Removing instruction b5_from_main:
 Removing instruction print_cls_from_b5:
 Removing instruction b1_from_b8:
@@ -8277,10 +8272,11 @@ Removing instruction b1_from_print_sword:
 Removing instruction b1_from_b4:
 Removing instruction b1_from_b1:
 Removing instruction b1_from_b4:
-Removing instruction b3_from_b2:
+Removing instruction b2_from_b1:
+Removing instruction b2_from_b5:
+Removing instruction b3_from_b16:
 Removing instruction b3_from_b6:
-Removing instruction b4_from_b19:
-Removing instruction b4_from_b7:
+Removing instruction breturn:
 Removing instruction b4_from_b2:
 Removing instruction b4_from_b7:
 Removing instruction b1_from_b3:
@@ -8289,7 +8285,7 @@ Removing instruction b2_from_b4:
 Removing instruction b3_from_b2:
 Removing instruction b3_from_b5:
 Succesful ASM optimization Pass5RedundantLabelElimination
-Removing instruction b25:
+Removing instruction b26:
 Removing instruction bend:
 Removing instruction sin16s_gen_from_main:
 Removing instruction b5:
@@ -8314,12 +8310,18 @@ Removing instruction breturn:
 Removing instruction b1_from_print_cls:
 Removing instruction breturn:
 Removing instruction div32u16u_from_sin16s_gen:
-Removing instruction b9:
-Removing instruction b1_from_b9:
+Removing instruction b3:
+Removing instruction b1_from_b3:
+Removing instruction b4:
+Removing instruction breturn:
+Removing instruction b4:
+Removing instruction b1_from_b4:
 Removing instruction b5:
-Removing instruction b2_from_b5:
-Removing instruction b6:
-Removing instruction mul_u16_sel_from_b3:
+Removing instruction mul_u16_sel_from_b2:
+Removing instruction b8:
+Removing instruction mul_u16_sel_from_b8:
+Removing instruction b9:
+Removing instruction mul_u16_sel_from_b9:
 Removing instruction b10:
 Removing instruction mul_u16_sel_from_b10:
 Removing instruction b11:
@@ -8327,13 +8329,7 @@ Removing instruction mul_u16_sel_from_b11:
 Removing instruction b12:
 Removing instruction mul_u16_sel_from_b12:
 Removing instruction b13:
-Removing instruction mul_u16_sel_from_b13:
-Removing instruction b14:
-Removing instruction mul_u16_sel_from_b14:
-Removing instruction b15:
-Removing instruction b7:
-Removing instruction breturn:
-Removing instruction b2_from_b17:
+Removing instruction b6:
 Removing instruction b2:
 Removing instruction breturn:
 Removing instruction b1_from_mul16u:
@@ -8351,8 +8347,10 @@ Removing instruction b5:
 Removing instruction b6:
 Removing instruction breturn:
 Succesful ASM optimization Pass5UnusedLabelElimination
-Skipping double jump to b4 in beq b19
+Skipping double jump to b3 in beq b16
 Succesful ASM optimization Pass5DoubleJumpElimination
+Relabelling long label b1_from_sin16s to b4
+Succesful ASM optimization Pass5RelabelLongLabels
 Removing instruction jmp b1
 Removing instruction jmp b1
 Removing instruction jmp b1
@@ -8360,19 +8358,13 @@ Removing instruction jmp b1
 Succesful ASM optimization Pass5NextJumpElimination
 Removing instruction lda #0
 Succesful ASM optimization Pass5UnnecesaryLoadElimination
-Removing instruction b19:
+Removing instruction b16:
 Succesful ASM optimization Pass5UnusedLabelElimination
-Removing unreachable instruction jmp b4
+Removing unreachable instruction jmp b3
 Succesful ASM optimization Pass5UnreachableCodeElimination
-Fixing long branch [382] bcc b1 to bcs
-Fixing long branch [388] bcc b1 to bcs
-Fixing long branch [193] bcc b17 to bcs
-Fixing long branch [199] bcc b17 to bcs
-Fixing long branch [205] bcc b17 to bcs
-Fixing long branch [211] bcc b17 to bcs
 
 FINAL SYMBOL TABLE
-(label) @25
+(label) @26
 (label) @begin
 (label) @end
 (dword) PI2_u4f28
@@ -8405,8 +8397,8 @@ FINAL SYMBOL TABLE
 (word) div32u16u::quotient_lo
 (word) div32u16u::quotient_lo#0 quotient_lo zp ZP_WORD:8 4.0
 (dword) div32u16u::return
-(dword) div32u16u::return#0 return zp ZP_DWORD:26 4.0
-(dword) div32u16u::return#1 return zp ZP_DWORD:26 1.3333333333333333
+(dword) div32u16u::return#0 return zp ZP_DWORD:27 4.0
+(dword) div32u16u::return#1 return zp ZP_DWORD:27 1.3333333333333333
 (word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
 (byte~) divr16u::$1 reg byte a 22.0
 (byte~) divr16u::$2 reg byte a 22.0
@@ -8471,15 +8463,15 @@ FINAL SYMBOL TABLE
 (label) mul16u::@7
 (label) mul16u::@return
 (word) mul16u::a
-(word) mul16u::a#0 a zp ZP_WORD:20 101.0
-(word) mul16u::a#1 a zp ZP_WORD:20 1.3333333333333333
-(word) mul16u::a#2 a zp ZP_WORD:20 67.66666666666666
+(word) mul16u::a#0 a zp ZP_WORD:21 101.0
+(word) mul16u::a#1 a zp ZP_WORD:21 1.3333333333333333
+(word) mul16u::a#2 a zp ZP_WORD:21 67.66666666666666
 (word) mul16u::b
 (word) mul16u::b#0 b zp ZP_WORD:18 4.0
 (dword) mul16u::mb
-(dword) mul16u::mb#0 mb zp ZP_DWORD:22 4.0
-(dword) mul16u::mb#1 mb zp ZP_DWORD:22 202.0
-(dword) mul16u::mb#2 mb zp ZP_DWORD:22 43.57142857142858
+(dword) mul16u::mb#0 mb zp ZP_DWORD:23 4.0
+(dword) mul16u::mb#1 mb zp ZP_DWORD:23 202.0
+(dword) mul16u::mb#2 mb zp ZP_DWORD:23 43.57142857142858
 (dword) mul16u::res
 (dword) mul16u::res#1 res zp ZP_DWORD:14 202.0
 (dword) mul16u::res#2 res zp ZP_DWORD:14 50.83333333333333
@@ -8492,29 +8484,29 @@ FINAL SYMBOL TABLE
 (label) mul_u16_sel::@2
 (label) mul_u16_sel::@return
 (word) mul_u16_sel::return
-(word) mul_u16_sel::return#0 return zp ZP_WORD:8 22.0
-(word) mul_u16_sel::return#1 return zp ZP_WORD:8 22.0
-(word) mul_u16_sel::return#10 return#10 zp ZP_WORD:6 22.0
-(word) mul_u16_sel::return#11 return zp ZP_WORD:8 22.0
-(word) mul_u16_sel::return#12 return zp ZP_WORD:8 22.0
-(word) mul_u16_sel::return#13 return#13 zp ZP_WORD:18 22.0
-(word) mul_u16_sel::return#14 return#14 zp ZP_WORD:18 8.5
+(word) mul_u16_sel::return#0 return zp ZP_WORD:8 4.0
+(word) mul_u16_sel::return#1 return zp ZP_WORD:8 4.0
+(word) mul_u16_sel::return#10 return#10 zp ZP_WORD:6 4.0
+(word) mul_u16_sel::return#11 return zp ZP_WORD:8 4.0
+(word) mul_u16_sel::return#12 return zp ZP_WORD:8 4.0
+(word) mul_u16_sel::return#13 return#13 zp ZP_WORD:18 4.0
+(word) mul_u16_sel::return#14 return#14 zp ZP_WORD:18 1.75
 (byte) mul_u16_sel::select
-(byte) mul_u16_sel::select#6 reg byte x 0.3333333333333333
+(byte) mul_u16_sel::select#6 select zp ZP_BYTE:20 0.3333333333333333
 (word) mul_u16_sel::v1
-(word) mul_u16_sel::v1#0 v1 zp ZP_WORD:8 11.0
-(word) mul_u16_sel::v1#1 v1 zp ZP_WORD:8 11.0
-(word) mul_u16_sel::v1#2 v1 zp ZP_WORD:8 22.0
-(word) mul_u16_sel::v1#3 v1 zp ZP_WORD:8 11.0
-(word) mul_u16_sel::v1#4 v1 zp ZP_WORD:8 11.0
-(word) mul_u16_sel::v1#5 v1 zp ZP_WORD:8 22.0
-(word) mul_u16_sel::v1#6 v1 zp ZP_WORD:8 68.0
+(word) mul_u16_sel::v1#0 v1 zp ZP_WORD:8 2.0
+(word) mul_u16_sel::v1#1 v1 zp ZP_WORD:8 2.0
+(word) mul_u16_sel::v1#2 v1 zp ZP_WORD:8 4.0
+(word) mul_u16_sel::v1#3 v1 zp ZP_WORD:8 2.0
+(word) mul_u16_sel::v1#4 v1 zp ZP_WORD:8 2.0
+(word) mul_u16_sel::v1#5 v1 zp ZP_WORD:8 4.0
+(word) mul_u16_sel::v1#6 v1 zp ZP_WORD:8 14.0
 (word) mul_u16_sel::v2
-(word) mul_u16_sel::v2#0 v2 zp ZP_WORD:18 22.0
-(word) mul_u16_sel::v2#1 v2 zp ZP_WORD:18 22.0
-(word) mul_u16_sel::v2#3 v2 zp ZP_WORD:18 22.0
-(word) mul_u16_sel::v2#4 v2 zp ZP_WORD:18 22.0
-(word) mul_u16_sel::v2#6 v2 zp ZP_WORD:18 23.0
+(word) mul_u16_sel::v2#0 v2 zp ZP_WORD:18 4.0
+(word) mul_u16_sel::v2#1 v2 zp ZP_WORD:18 4.0
+(word) mul_u16_sel::v2#3 v2 zp ZP_WORD:18 4.0
+(word) mul_u16_sel::v2#4 v2 zp ZP_WORD:18 4.0
+(word) mul_u16_sel::v2#6 v2 zp ZP_WORD:18 5.0
 (void()) print_byte((byte) print_byte::b)
 (byte~) print_byte::$0 reg byte a 4.0
 (byte~) print_byte::$2 reg byte a 4.0
@@ -8561,92 +8553,97 @@ FINAL SYMBOL TABLE
 (word) print_word::w
 (word) rem16u
 (word) rem16u#1 rem16u zp ZP_WORD:4 0.8
+(signed word()) sin16s((dword) sin16s::x)
+(dword~) sin16s::$6 $6 zp ZP_DWORD:14 4.0
+(label) sin16s::@1
+(label) sin16s::@10
+(label) sin16s::@11
+(label) sin16s::@12
+(label) sin16s::@13
+(label) sin16s::@16
+(label) sin16s::@2
+(label) sin16s::@3
+(label) sin16s::@4
+(label) sin16s::@5
+(label) sin16s::@6
+(label) sin16s::@8
+(label) sin16s::@9
+(label) sin16s::@return
+(byte) sin16s::isUpper
+(byte) sin16s::isUpper#10 reg byte x 0.05555555555555555
+(signed word) sin16s::return
+(signed word) sin16s::return#0 return zp ZP_WORD:6 22.0
+(signed word) sin16s::return#1 return zp ZP_WORD:6 5.0
+(signed word~) sin16s::return#5 return zp ZP_WORD:6 4.0
+(signed word) sin16s::sinx
+(signed word) sin16s::sinx#1 sinx zp ZP_WORD:6 4.0
+(word) sin16s::usinx
+(word) sin16s::usinx#0 usinx zp ZP_WORD:6 0.26666666666666666
+(word) sin16s::usinx#1 usinx zp ZP_WORD:6 1.0
+(dword) sin16s::x
+(dword) sin16s::x#0 x zp ZP_DWORD:14 8.5
+(dword) sin16s::x#1 x zp ZP_DWORD:14 4.0
+(dword) sin16s::x#2 x zp ZP_DWORD:14 4.0
+(dword) sin16s::x#4 x zp ZP_DWORD:14 5.0
+(dword) sin16s::x#6 x zp ZP_DWORD:14 6.0
+(word) sin16s::x1
+(word) sin16s::x1#0 x1 zp ZP_WORD:31 0.6363636363636365
+(word) sin16s::x2
+(word) sin16s::x2#0 x2 zp ZP_WORD:8 4.0
+(word) sin16s::x3
+(word) sin16s::x3#0 x3 zp ZP_WORD:8 1.0
+(word) sin16s::x3_6
+(word) sin16s::x3_6#0 x3_6 zp ZP_WORD:6 4.0
+(word) sin16s::x4
+(word) sin16s::x4#0 x4 zp ZP_WORD:8 4.0
+(word) sin16s::x5
+(word) sin16s::x5#0 x5 zp ZP_WORD:8 4.0
+(word) sin16s::x5_128
+(word) sin16s::x5_128#0 x5_128 zp ZP_WORD:18 4.0
 (void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength)
-(dword~) sin16s_gen::$7 $7 zp ZP_DWORD:14 22.0
+(signed word~) sin16s_gen::$1 $1 zp ZP_WORD:6 22.0
 (label) sin16s_gen::@1
-(label) sin16s_gen::@10
-(label) sin16s_gen::@11
-(label) sin16s_gen::@12
-(label) sin16s_gen::@13
-(label) sin16s_gen::@14
-(label) sin16s_gen::@15
-(label) sin16s_gen::@17
-(label) sin16s_gen::@19
-(label) sin16s_gen::@2
 (label) sin16s_gen::@3
 (label) sin16s_gen::@4
-(label) sin16s_gen::@5
-(label) sin16s_gen::@6
-(label) sin16s_gen::@7
-(label) sin16s_gen::@9
 (label) sin16s_gen::@return
 (word) sin16s_gen::i
 (word) sin16s_gen::i#1 i zp ZP_WORD:4 16.5
-(word) sin16s_gen::i#10 i zp ZP_WORD:4 0.46808510638297873
-(byte) sin16s_gen::isUpper
-(byte) sin16s_gen::isUpper#10 reg byte y 0.3055555555555556
+(word) sin16s_gen::i#2 i zp ZP_WORD:4 2.75
 (signed word*) sin16s_gen::sintab
 (signed word*) sin16s_gen::sintab#1 sintab zp ZP_WORD:2 5.5
-(signed word*) sin16s_gen::sintab#10 sintab zp ZP_WORD:2 0.7333333333333333
-(signed word) sin16s_gen::sinx
-(signed word) sin16s_gen::sinx#1 sinx zp ZP_WORD:6 22.0
-(signed word) sin16s_gen::sinx#2 sinx zp ZP_WORD:6 33.0
-(signed word~) sin16s_gen::sinx#3 sinx zp ZP_WORD:6 22.0
+(signed word*) sin16s_gen::sintab#2 sintab zp ZP_WORD:2 5.5
 (dword) sin16s_gen::step
-(dword) sin16s_gen::step#0 step zp ZP_DWORD:26 0.26
-(word) sin16s_gen::usinx
-(word) sin16s_gen::usinx#0 usinx zp ZP_WORD:6 1.4666666666666666
-(word) sin16s_gen::usinx#1 usinx zp ZP_WORD:6 5.5
+(dword) sin16s_gen::step#0 step zp ZP_DWORD:27 1.1818181818181819
 (word) sin16s_gen::wavelength
 (dword) sin16s_gen::x
 (dword) sin16s_gen::x#1 x zp ZP_DWORD:10 7.333333333333333
-(dword) sin16s_gen::x#10 x zp ZP_DWORD:10 1.1956521739130435
-(word) sin16s_gen::x1
-(word) sin16s_gen::x1#0 x1 zp ZP_WORD:30 3.5
-(word) sin16s_gen::x2
-(word) sin16s_gen::x2#0 x2 zp ZP_WORD:8 22.0
-(word) sin16s_gen::x3
-(word) sin16s_gen::x3#0 x3 zp ZP_WORD:8 5.5
-(word) sin16s_gen::x3_6
-(word) sin16s_gen::x3_6#0 x3_6 zp ZP_WORD:6 22.0
-(word) sin16s_gen::x4
-(word) sin16s_gen::x4#0 x4 zp ZP_WORD:8 22.0
-(word) sin16s_gen::x5
-(word) sin16s_gen::x5#0 x5 zp ZP_WORD:8 22.0
-(word) sin16s_gen::x5_128
-(word) sin16s_gen::x5_128#0 x5_128 zp ZP_WORD:18 22.0
-(dword) sin16s_gen::xp
-(dword) sin16s_gen::xp#1 xp zp ZP_DWORD:14 22.0
-(dword) sin16s_gen::xp#2 xp zp ZP_DWORD:14 22.0
-(dword) sin16s_gen::xp#3 xp zp ZP_DWORD:14 27.5
-(dword) sin16s_gen::xp#5 xp zp ZP_DWORD:14 33.0
-(dword~) sin16s_gen::xp#7 xp zp ZP_DWORD:14 22.0
+(dword) sin16s_gen::x#2 x zp ZP_DWORD:10 4.714285714285714
 
-zp ZP_WORD:2 [ main::st1#2 main::st1#1 print_cls::sc#2 print_cls::sc#1 sin16s_gen::sintab#10 sin16s_gen::sintab#1 divr16u::divisor#6 ]
-zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 sin16s_gen::i#10 sin16s_gen::i#1 divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 rem16u#1 ]
-zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 main::sw#0 sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 sin16s_gen::usinx#1 sin16s_gen::usinx#0 sin16s_gen::x3_6#0 mul_u16_sel::return#10 divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ]
+zp ZP_WORD:2 [ main::st1#2 main::st1#1 print_cls::sc#2 print_cls::sc#1 sin16s_gen::sintab#2 sin16s_gen::sintab#1 divr16u::divisor#6 ]
+zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 sin16s_gen::i#2 sin16s_gen::i#1 divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 rem16u#1 ]
+zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 main::sw#0 sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 sin16s::usinx#0 sin16s::x3_6#0 mul_u16_sel::return#10 divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ]
 reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
 reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ]
-zp ZP_WORD:8 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 mul_u16_sel::return#11 sin16s_gen::x5#0 mul_u16_sel::return#12 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ]
-zp ZP_DWORD:10 [ sin16s_gen::x#10 sin16s_gen::x#1 ]
-reg byte y [ sin16s_gen::isUpper#10 ]
-zp ZP_DWORD:14 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 sin16s_gen::$7 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 mul_u16_sel::$1 ]
-zp ZP_WORD:18 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul16u::b#0 mul_u16_sel::return#13 sin16s_gen::x5_128#0 mul_u16_sel::return#14 div32u16u::quotient_hi#0 ]
-reg byte x [ mul_u16_sel::select#6 ]
-zp ZP_WORD:20 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ]
-zp ZP_DWORD:22 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ]
+zp ZP_WORD:8 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 mul_u16_sel::return#11 sin16s::x5#0 mul_u16_sel::return#12 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ]
+zp ZP_DWORD:10 [ sin16s_gen::x#2 sin16s_gen::x#1 ]
+reg byte x [ sin16s::isUpper#10 ]
+zp ZP_DWORD:14 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 sin16s::$6 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 mul_u16_sel::$1 ]
+zp ZP_WORD:18 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 mul16u::b#0 mul_u16_sel::return#13 sin16s::x5_128#0 mul_u16_sel::return#14 div32u16u::quotient_hi#0 ]
+zp ZP_BYTE:20 [ mul_u16_sel::select#6 ]
+zp ZP_WORD:21 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ]
+zp ZP_DWORD:23 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ]
 reg byte x [ divr16u::i#2 divr16u::i#1 ]
 reg byte a [ print_byte::$0 ]
 reg byte a [ print_byte::$2 ]
-zp ZP_DWORD:26 [ div32u16u::return#0 sin16s_gen::step#0 div32u16u::return#1 ]
-zp ZP_WORD:30 [ sin16s_gen::x1#0 ]
+zp ZP_DWORD:27 [ div32u16u::return#0 sin16s_gen::step#0 div32u16u::return#1 ]
+zp ZP_WORD:31 [ sin16s::x1#0 ]
 reg byte a [ mul16u::$1 ]
 reg byte a [ divr16u::$1 ]
 reg byte a [ divr16u::$2 ]
 
 
 FINAL ASSEMBLER
-Score: 24417
+Score: 20947
 
 //SEG0 Basic Upstart
 .pc = $801 "Basic"
@@ -8660,12 +8657,12 @@ Score: 24417
   .label rem16u = 4
   .label char_cursor = 8
 //SEG2 @begin
-//SEG3 [1] phi from @begin to @25 [phi:@begin->@25]
-//SEG4 @25
+//SEG3 [1] phi from @begin to @26 [phi:@begin->@26]
+//SEG4 @26
 //SEG5 [2] call main param-assignment [ ] ( )
-//SEG6 [4] phi from @25 to main [phi:@25->main]
+//SEG6 [4] phi from @26 to main [phi:@26->main]
   jsr main
-//SEG7 [3] phi from @25 to @end [phi:@25->@end]
+//SEG7 [3] phi from @26 to @end [phi:@26->@end]
 //SEG8 @end
 //SEG9 main
 main: {
@@ -8934,319 +8931,65 @@ print_cls: {
 }
 //SEG122 sin16s_gen
 sin16s_gen: {
-    .label _7 = $e
-    .label step = $1a
-    .label xp = $e
-    .label x1 = $1e
-    .label x2 = 8
-    .label x3 = 8
-    .label x3_6 = 6
-    .label usinx = 6
-    .label x4 = 8
-    .label x5 = 8
-    .label x5_128 = $12
+    .label _1 = 6
+    .label step = $1b
     .label sintab = 2
     .label x = $a
     .label i = 4
-    .label sinx = 6
   //SEG123 [59] call div32u16u param-assignment [ div32u16u::return#1 ] ( main:2::sin16s_gen:5 [ div32u16u::return#1 ] )
-  //SEG124 [131] phi from sin16s_gen to div32u16u [phi:sin16s_gen->div32u16u]
+  //SEG124 [135] phi from sin16s_gen to div32u16u [phi:sin16s_gen->div32u16u]
     jsr div32u16u
   //SEG125 [60] (dword) div32u16u::return#0 ← (dword) div32u16u::return#1 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] )
-    // (dword) div32u16u::return#0 = (dword) div32u16u::return#1  // register copy zp ZP_DWORD:26
-  //SEG126 sin16s_gen::@9
+    // (dword) div32u16u::return#0 = (dword) div32u16u::return#1  // register copy zp ZP_DWORD:27
+  //SEG126 sin16s_gen::@3
   //SEG127 [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#0 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] )
-    // (dword) sin16s_gen::step#0 = (dword) div32u16u::return#0  // register copy zp ZP_DWORD:26
-  //SEG128 [62] phi from sin16s_gen::@9 to sin16s_gen::@1 [phi:sin16s_gen::@9->sin16s_gen::@1]
-  //SEG129 [62] phi (word) sin16s_gen::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@9->sin16s_gen::@1#0] -- vwuz1=vbuc1 
+    // (dword) sin16s_gen::step#0 = (dword) div32u16u::return#0  // register copy zp ZP_DWORD:27
+  //SEG128 [62] phi from sin16s_gen::@3 to sin16s_gen::@1 [phi:sin16s_gen::@3->sin16s_gen::@1]
+  //SEG129 [62] phi (word) sin16s_gen::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->sin16s_gen::@1#0] -- vwuz1=vbuc1 
     lda #<0
     sta i
     sta i+1
-  //SEG130 [62] phi (signed word*) sin16s_gen::sintab#10 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@9->sin16s_gen::@1#1] -- pwsz1=pwsc1 
+  //SEG130 [62] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 
     lda #<main.sintab1
     sta sintab
     lda #>main.sintab1
     sta sintab+1
-  //SEG131 [62] phi (dword) sin16s_gen::x#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@9->sin16s_gen::@1#2] -- vduz1=vbuc1 
+  //SEG131 [62] phi (dword) sin16s_gen::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->sin16s_gen::@1#2] -- vduz1=vbuc1 
     lda #0
     sta x
     sta x+1
     sta x+2
     sta x+3
   //SEG132 [62] phi from sin16s_gen::@4 to sin16s_gen::@1 [phi:sin16s_gen::@4->sin16s_gen::@1]
-  //SEG133 [62] phi (word) sin16s_gen::i#10 = (word) sin16s_gen::i#1 [phi:sin16s_gen::@4->sin16s_gen::@1#0] -- register_copy 
-  //SEG134 [62] phi (signed word*) sin16s_gen::sintab#10 = (signed word*) sin16s_gen::sintab#1 [phi:sin16s_gen::@4->sin16s_gen::@1#1] -- register_copy 
-  //SEG135 [62] phi (dword) sin16s_gen::x#10 = (dword) sin16s_gen::x#1 [phi:sin16s_gen::@4->sin16s_gen::@1#2] -- register_copy 
+  //SEG133 [62] phi (word) sin16s_gen::i#2 = (word) sin16s_gen::i#1 [phi:sin16s_gen::@4->sin16s_gen::@1#0] -- register_copy 
+  //SEG134 [62] phi (signed word*) sin16s_gen::sintab#2 = (signed word*) sin16s_gen::sintab#1 [phi:sin16s_gen::@4->sin16s_gen::@1#1] -- register_copy 
+  //SEG135 [62] phi (dword) sin16s_gen::x#2 = (dword) sin16s_gen::x#1 [phi:sin16s_gen::@4->sin16s_gen::@1#2] -- register_copy 
   //SEG136 sin16s_gen::@1
   b1:
-  //SEG137 [63] if((dword) sin16s_gen::x#10<(const dword) PI_u4f28#0) goto sin16s_gen::@17 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) -- vduz1_lt_vduc1_then_la1 
-    lda x+3
-    cmp #>PI_u4f28>>$10
-    bcs !b17+
-    jmp b17
-  !b17:
-    bne !+
-    lda x+2
-    cmp #<PI_u4f28>>$10
-    bcs !b17+
-    jmp b17
-  !b17:
-    bne !+
-    lda x+1
-    cmp #>PI_u4f28
-    bcs !b17+
-    jmp b17
-  !b17:
-    bne !+
+  //SEG137 [63] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ) -- vduz1=vduz2 
     lda x
-    cmp #<PI_u4f28
-    bcs !b17+
-    jmp b17
-  !b17:
-  !:
-  //SEG138 sin16s_gen::@5
-  //SEG139 [64] (dword) sin16s_gen::xp#1 ← (dword) sin16s_gen::x#10 - (const dword) PI_u4f28#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ) -- vduz1=vduz2_minus_vduc1 
-    lda x
-    sec
-    sbc #<PI_u4f28
-    sta xp
+    sta sin16s.x
     lda x+1
-    sbc #>PI_u4f28
-    sta xp+1
+    sta sin16s.x+1
     lda x+2
-    sbc #<PI_u4f28>>$10
-    sta xp+2
+    sta sin16s.x+2
     lda x+3
-    sbc #>PI_u4f28>>$10
-    sta xp+3
-  //SEG140 [65] phi from sin16s_gen::@5 to sin16s_gen::@2 [phi:sin16s_gen::@5->sin16s_gen::@2]
-  //SEG141 [65] phi (byte) sin16s_gen::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@5->sin16s_gen::@2#0] -- vbuyy=vbuc1 
-    ldy #1
-  //SEG142 [65] phi (dword) sin16s_gen::xp#3 = (dword) sin16s_gen::xp#1 [phi:sin16s_gen::@5->sin16s_gen::@2#1] -- register_copy 
-  //SEG143 sin16s_gen::@2
-  b2:
-  //SEG144 [66] if((dword) sin16s_gen::xp#3<(const dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) -- vduz1_lt_vduc1_then_la1 
-    lda xp+3
-    cmp #>PI_HALF_u4f28>>$10
-    bcc b3
-    bne !+
-    lda xp+2
-    cmp #<PI_HALF_u4f28>>$10
-    bcc b3
-    bne !+
-    lda xp+1
-    cmp #>PI_HALF_u4f28
-    bcc b3
-    bne !+
-    lda xp
-    cmp #<PI_HALF_u4f28
-    bcc b3
-  !:
-  //SEG145 sin16s_gen::@6
-  //SEG146 [67] (dword) sin16s_gen::xp#2 ← (const dword) PI_u4f28#0 - (dword) sin16s_gen::xp#3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ) -- vduz1=vduc1_minus_vduz1 
-    lda #<PI_u4f28
-    sec
-    sbc xp
-    sta xp
-    lda #>PI_u4f28
-    sbc xp+1
-    sta xp+1
-    lda #<PI_u4f28>>$10
-    sbc xp+2
-    sta xp+2
-    lda #>PI_u4f28>>$10
-    sbc xp+3
-    sta xp+3
-  //SEG147 [68] phi from sin16s_gen::@2 sin16s_gen::@6 to sin16s_gen::@3 [phi:sin16s_gen::@2/sin16s_gen::@6->sin16s_gen::@3]
-  //SEG148 [68] phi (dword) sin16s_gen::xp#5 = (dword) sin16s_gen::xp#3 [phi:sin16s_gen::@2/sin16s_gen::@6->sin16s_gen::@3#0] -- register_copy 
-  //SEG149 sin16s_gen::@3
-  b3:
-  //SEG150 [69] (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ) -- vduz1=vduz1_rol_3 
-    ldx #3
-  !:
-    asl _7
-    rol _7+1
-    rol _7+2
-    rol _7+3
-    dex
-    bne !-
-  //SEG151 [70] (word) sin16s_gen::x1#0 ← > (dword~) sin16s_gen::$7 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ) -- vwuz1=_hi_vduz2 
-    lda _7+2
-    sta x1
-    lda _7+3
-    sta x1+1
-  //SEG152 [71] (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v1
-    lda x1+1
-    sta mul_u16_sel.v1+1
-  //SEG153 [72] (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-  //SEG154 [73] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] )
-  //SEG155 [112] phi from sin16s_gen::@3 to mul_u16_sel [phi:sin16s_gen::@3->mul_u16_sel]
-  //SEG156 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->mul_u16_sel#0] -- vbuxx=vbuc1 
-    ldx #0
-  //SEG157 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#0 [phi:sin16s_gen::@3->mul_u16_sel#1] -- register_copy 
-  //SEG158 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#0 [phi:sin16s_gen::@3->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG159 [74] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return+1
-  //SEG160 sin16s_gen::@10
-  //SEG161 [75] (word) sin16s_gen::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] )
-    // (word) sin16s_gen::x2#0 = (word) mul_u16_sel::return#0  // register copy zp ZP_WORD:8
-  //SEG162 [76] (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] )
-    // (word) mul_u16_sel::v1#1 = (word) sin16s_gen::x2#0  // register copy zp ZP_WORD:8
-  //SEG163 [77] (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-  //SEG164 [78] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] )
-  //SEG165 [112] phi from sin16s_gen::@10 to mul_u16_sel [phi:sin16s_gen::@10->mul_u16_sel]
-  //SEG166 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@10->mul_u16_sel#0] -- vbuxx=vbuc1 
-    ldx #1
-  //SEG167 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#1 [phi:sin16s_gen::@10->mul_u16_sel#1] -- register_copy 
-  //SEG168 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#1 [phi:sin16s_gen::@10->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG169 [79] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return+1
-  //SEG170 sin16s_gen::@11
-  //SEG171 [80] (word) sin16s_gen::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] )
-    // (word) sin16s_gen::x3#0 = (word) mul_u16_sel::return#1  // register copy zp ZP_WORD:8
-  //SEG172 [81] (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] )
-    // (word) mul_u16_sel::v1#2 = (word) sin16s_gen::x3#0  // register copy zp ZP_WORD:8
-  //SEG173 [82] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] )
-  //SEG174 [112] phi from sin16s_gen::@11 to mul_u16_sel [phi:sin16s_gen::@11->mul_u16_sel]
-  //SEG175 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@11->mul_u16_sel#0] -- vbuxx=vbuc1 
-    ldx #1
-  //SEG176 [112] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s_gen::@11->mul_u16_sel#1] -- vwuz1=vwuc1 
-    lda #<$10000/6
-    sta mul_u16_sel.v2
-    lda #>$10000/6
-    sta mul_u16_sel.v2+1
-  //SEG177 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#2 [phi:sin16s_gen::@11->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG178 [83] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return_10
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return_10+1
-  //SEG179 sin16s_gen::@12
-  //SEG180 [84] (word) sin16s_gen::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] )
-    // (word) sin16s_gen::x3_6#0 = (word) mul_u16_sel::return#10  // register copy zp ZP_WORD:6
-  //SEG181 [85] (word) sin16s_gen::usinx#0 ← (word) sin16s_gen::x1#0 - (word) sin16s_gen::x3_6#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ) -- vwuz1=vwuz2_minus_vwuz1 
-    lda x1
-    sec
-    sbc usinx
-    sta usinx
-    lda x1+1
-    sbc usinx+1
-    sta usinx+1
-  //SEG182 [86] (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] )
-    // (word) mul_u16_sel::v1#3 = (word) sin16s_gen::x3#0  // register copy zp ZP_WORD:8
-  //SEG183 [87] (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-  //SEG184 [88] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  //SEG185 [112] phi from sin16s_gen::@12 to mul_u16_sel [phi:sin16s_gen::@12->mul_u16_sel]
-  //SEG186 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@12->mul_u16_sel#0] -- vbuxx=vbuc1 
-    ldx #0
-  //SEG187 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#3 [phi:sin16s_gen::@12->mul_u16_sel#1] -- register_copy 
-  //SEG188 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#3 [phi:sin16s_gen::@12->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG189 [89] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return+1
-  //SEG190 sin16s_gen::@13
-  //SEG191 [90] (word) sin16s_gen::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] )
-    // (word) sin16s_gen::x4#0 = (word) mul_u16_sel::return#11  // register copy zp ZP_WORD:8
-  //SEG192 [91] (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] )
-    // (word) mul_u16_sel::v1#4 = (word) sin16s_gen::x4#0  // register copy zp ZP_WORD:8
-  //SEG193 [92] (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) -- vwuz1=vwuz2 
-    lda x1
-    sta mul_u16_sel.v2
-    lda x1+1
-    sta mul_u16_sel.v2+1
-  //SEG194 [93] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  //SEG195 [112] phi from sin16s_gen::@13 to mul_u16_sel [phi:sin16s_gen::@13->mul_u16_sel]
-  //SEG196 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@13->mul_u16_sel#0] -- vbuxx=vbuc1 
-    ldx #0
-  //SEG197 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#4 [phi:sin16s_gen::@13->mul_u16_sel#1] -- register_copy 
-  //SEG198 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#4 [phi:sin16s_gen::@13->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG199 [94] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ) -- vwuz1=vwuz2 
-    lda mul_u16_sel.return_14
-    sta mul_u16_sel.return
-    lda mul_u16_sel.return_14+1
-    sta mul_u16_sel.return+1
-  //SEG200 sin16s_gen::@14
-  //SEG201 [95] (word) sin16s_gen::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] )
-    // (word) sin16s_gen::x5#0 = (word) mul_u16_sel::return#12  // register copy zp ZP_WORD:8
-  //SEG202 [96] (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] )
-    // (word) mul_u16_sel::v1#5 = (word) sin16s_gen::x5#0  // register copy zp ZP_WORD:8
-  //SEG203 [97] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] )
-  //SEG204 [112] phi from sin16s_gen::@14 to mul_u16_sel [phi:sin16s_gen::@14->mul_u16_sel]
-  //SEG205 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:sin16s_gen::@14->mul_u16_sel#0] -- vbuxx=vbuc1 
-    ldx #3
-  //SEG206 [112] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 [phi:sin16s_gen::@14->mul_u16_sel#1] -- vwuz1=vwuc1 
-    lda #<$10000/$80
-    sta mul_u16_sel.v2
-    lda #>$10000/$80
-    sta mul_u16_sel.v2+1
-  //SEG207 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#5 [phi:sin16s_gen::@14->mul_u16_sel#2] -- register_copy 
-    jsr mul_u16_sel
-  //SEG208 [98] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] )
-    // (word) mul_u16_sel::return#13 = (word) mul_u16_sel::return#14  // register copy zp ZP_WORD:18
-  //SEG209 sin16s_gen::@15
-  //SEG210 [99] (word) sin16s_gen::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] )
-    // (word) sin16s_gen::x5_128#0 = (word) mul_u16_sel::return#13  // register copy zp ZP_WORD:18
-  //SEG211 [100] (word) sin16s_gen::usinx#1 ← (word) sin16s_gen::usinx#0 + (word) sin16s_gen::x5_128#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ) -- vwuz1=vwuz1_plus_vwuz2 
-    lda usinx
-    clc
-    adc x5_128
-    sta usinx
-    lda usinx+1
-    adc x5_128+1
-    sta usinx+1
-  //SEG212 [101] if((byte) sin16s_gen::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s_gen::@19 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ) -- vbuyy_eq_0_then_la1 
-    cpy #0
-    beq b4
-  //SEG213 sin16s_gen::@7
-  //SEG214 [102] (signed word) sin16s_gen::sinx#1 ← - (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ) -- vwsz1=_neg_vwsz1 
-    sec
-    lda sinx
-    eor #$ff
-    adc #0
-    sta sinx
-    lda sinx+1
-    eor #$ff
-    adc #0
-    sta sinx+1
-  //SEG215 [103] phi from sin16s_gen::@19 sin16s_gen::@7 to sin16s_gen::@4 [phi:sin16s_gen::@19/sin16s_gen::@7->sin16s_gen::@4]
-  //SEG216 [103] phi (signed word) sin16s_gen::sinx#2 = (signed word~) sin16s_gen::sinx#3 [phi:sin16s_gen::@19/sin16s_gen::@7->sin16s_gen::@4#0] -- register_copy 
-  //SEG217 sin16s_gen::@4
-  b4:
-  //SEG218 [104] *((signed word*) sin16s_gen::sintab#10) ← (signed word) sin16s_gen::sinx#2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) -- _deref_pwsz1=vwsz2 
+    sta sin16s.x+3
+  //SEG138 [64] call sin16s param-assignment [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
+    jsr sin16s
+  //SEG139 [65] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] )
+    // (signed word) sin16s::return#0 = (signed word) sin16s::return#1  // register copy zp ZP_WORD:6
+  //SEG140 sin16s_gen::@4
+  //SEG141 [66] (signed word~) sin16s_gen::$1 ← (signed word) sin16s::return#0 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] )
+    // (signed word~) sin16s_gen::$1 = (signed word) sin16s::return#0  // register copy zp ZP_WORD:6
+  //SEG142 [67] *((signed word*) sin16s_gen::sintab#2) ← (signed word~) sin16s_gen::$1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ) -- _deref_pwsz1=vwsz2 
     ldy #0
-    lda sinx
+    lda _1
     sta (sintab),y
     iny
-    lda sinx+1
+    lda _1+1
     sta (sintab),y
-  //SEG219 [105] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ) -- pwsz1=pwsz1_plus_vbuc1 
+  //SEG143 [68] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] ) -- pwsz1=pwsz1_plus_vbuc1 
     clc
     lda sintab
     adc #<2
@@ -9254,7 +8997,7 @@ sin16s_gen: {
     lda sintab+1
     adc #>2
     sta sintab+1
-  //SEG220 [106] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#10 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) -- vduz1=vduz1_plus_vduz2 
+  //SEG144 [69] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#2 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) -- vduz1=vduz1_plus_vduz2 
     lda x
     clc
     adc step
@@ -9268,48 +9011,310 @@ sin16s_gen: {
     lda x+3
     adc step+3
     sta x+3
-  //SEG221 [107] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#10 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) -- vwuz1=_inc_vwuz1 
+  //SEG145 [70] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#2 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) -- vwuz1=_inc_vwuz1 
     inc i
     bne !+
     inc i+1
   !:
-  //SEG222 [108] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) -- vwuz1_lt_vwuc1_then_la1 
+  //SEG146 [71] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ) -- vwuz1_lt_vwuc1_then_la1 
     lda i+1
     cmp #>main.wavelength
-    bcs !b1+
-    jmp b1
-  !b1:
+    bcc b1
     bne !+
     lda i
     cmp #<main.wavelength
-    bcs !b1+
-    jmp b1
-  !b1:
+    bcc b1
   !:
-  //SEG223 sin16s_gen::@return
-  //SEG224 [109] return  [ ] ( main:2::sin16s_gen:5 [ ] )
+  //SEG147 sin16s_gen::@return
+  //SEG148 [72] return  [ ] ( main:2::sin16s_gen:5 [ ] )
     rts
-  //SEG225 sin16s_gen::@19
-  //SEG226 [110] (signed word~) sin16s_gen::sinx#3 ← (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] )
-    // (signed word~) sin16s_gen::sinx#3 = (signed word)(word) sin16s_gen::usinx#1  // register copy zp ZP_WORD:6
-  //SEG227 sin16s_gen::@17
-  b17:
-  //SEG228 [111] (dword~) sin16s_gen::xp#7 ← (dword) sin16s_gen::x#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ) -- vduz1=vduz2 
-    lda x
-    sta xp
-    lda x+1
-    sta xp+1
-    lda x+2
-    sta xp+2
-    lda x+3
-    sta xp+3
-  //SEG229 [65] phi from sin16s_gen::@17 to sin16s_gen::@2 [phi:sin16s_gen::@17->sin16s_gen::@2]
-  //SEG230 [65] phi (byte) sin16s_gen::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@17->sin16s_gen::@2#0] -- vbuyy=vbuc1 
-    ldy #0
-  //SEG231 [65] phi (dword) sin16s_gen::xp#3 = (dword~) sin16s_gen::xp#7 [phi:sin16s_gen::@17->sin16s_gen::@2#1] -- register_copy 
-    jmp b2
 }
-//SEG232 mul_u16_sel
+//SEG149 sin16s
+sin16s: {
+    .label _6 = $e
+    .label x = $e
+    .label return = 6
+    .label x1 = $1f
+    .label x2 = 8
+    .label x3 = 8
+    .label x3_6 = 6
+    .label usinx = 6
+    .label x4 = 8
+    .label x5 = 8
+    .label x5_128 = $12
+    .label sinx = 6
+  //SEG150 [73] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ) -- vduz1_lt_vduc1_then_la1 
+    lda x+3
+    cmp #>PI_u4f28>>$10
+    bcc b4
+    bne !+
+    lda x+2
+    cmp #<PI_u4f28>>$10
+    bcc b4
+    bne !+
+    lda x+1
+    cmp #>PI_u4f28
+    bcc b4
+    bne !+
+    lda x
+    cmp #<PI_u4f28
+    bcc b4
+  !:
+  //SEG151 sin16s::@4
+  //SEG152 [74] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#1 ] ) -- vduz1=vduz1_minus_vduc1 
+    lda x
+    sec
+    sbc #<PI_u4f28
+    sta x
+    lda x+1
+    sbc #>PI_u4f28
+    sta x+1
+    lda x+2
+    sbc #<PI_u4f28>>$10
+    sta x+2
+    lda x+3
+    sbc #>PI_u4f28>>$10
+    sta x+3
+  //SEG153 [75] phi from sin16s::@4 to sin16s::@1 [phi:sin16s::@4->sin16s::@1]
+  //SEG154 [75] phi (byte) sin16s::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@4->sin16s::@1#0] -- vbuxx=vbuc1 
+    ldx #1
+  //SEG155 [75] phi (dword) sin16s::x#4 = (dword) sin16s::x#1 [phi:sin16s::@4->sin16s::@1#1] -- register_copy 
+    jmp b1
+  //SEG156 [75] phi from sin16s to sin16s::@1 [phi:sin16s->sin16s::@1]
+  b4:
+  //SEG157 [75] phi (byte) sin16s::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s->sin16s::@1#0] -- vbuxx=vbuc1 
+    ldx #0
+  //SEG158 [75] phi (dword) sin16s::x#4 = (dword) sin16s::x#0 [phi:sin16s->sin16s::@1#1] -- register_copy 
+  //SEG159 sin16s::@1
+  b1:
+  //SEG160 [76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#4 sin16s::isUpper#10 ] ) -- vduz1_lt_vduc1_then_la1 
+    lda x+3
+    cmp #>PI_HALF_u4f28>>$10
+    bcc b2
+    bne !+
+    lda x+2
+    cmp #<PI_HALF_u4f28>>$10
+    bcc b2
+    bne !+
+    lda x+1
+    cmp #>PI_HALF_u4f28
+    bcc b2
+    bne !+
+    lda x
+    cmp #<PI_HALF_u4f28
+    bcc b2
+  !:
+  //SEG161 sin16s::@5
+  //SEG162 [77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#10 sin16s::x#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x#2 ] ) -- vduz1=vduc1_minus_vduz1 
+    lda #<PI_u4f28
+    sec
+    sbc x
+    sta x
+    lda #>PI_u4f28
+    sbc x+1
+    sta x+1
+    lda #<PI_u4f28>>$10
+    sbc x+2
+    sta x+2
+    lda #>PI_u4f28>>$10
+    sbc x+3
+    sta x+3
+  //SEG163 [78] phi from sin16s::@1 sin16s::@5 to sin16s::@2 [phi:sin16s::@1/sin16s::@5->sin16s::@2]
+  //SEG164 [78] phi (dword) sin16s::x#6 = (dword) sin16s::x#4 [phi:sin16s::@1/sin16s::@5->sin16s::@2#0] -- register_copy 
+  //SEG165 sin16s::@2
+  b2:
+  //SEG166 [79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#10 sin16s::$6 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::$6 ] ) -- vduz1=vduz1_rol_3 
+    ldy #3
+  !:
+    asl _6
+    rol _6+1
+    rol _6+2
+    rol _6+3
+    dey
+    bne !-
+  //SEG167 [80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#10 sin16s::x1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 ] ) -- vwuz1=_hi_vduz2 
+    lda _6+2
+    sta x1
+    lda _6+3
+    sta x1+1
+  //SEG168 [81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v1
+    lda x1+1
+    sta mul_u16_sel.v1+1
+  //SEG169 [82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+  //SEG170 [83] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] )
+  //SEG171 [116] phi from sin16s::@2 to mul_u16_sel [phi:sin16s::@2->mul_u16_sel]
+  //SEG172 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@2->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #0
+    sta mul_u16_sel.select
+  //SEG173 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#0 [phi:sin16s::@2->mul_u16_sel#1] -- register_copy 
+  //SEG174 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#0 [phi:sin16s::@2->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG175 [84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#0 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return+1
+  //SEG176 sin16s::@8
+  //SEG177 [85] (word) sin16s::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x2#0 ] )
+    // (word) sin16s::x2#0 = (word) mul_u16_sel::return#0  // register copy zp ZP_WORD:8
+  //SEG178 [86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 ] )
+    // (word) mul_u16_sel::v1#1 = (word) sin16s::x2#0  // register copy zp ZP_WORD:8
+  //SEG179 [87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+  //SEG180 [88] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] )
+  //SEG181 [116] phi from sin16s::@8 to mul_u16_sel [phi:sin16s::@8->mul_u16_sel]
+  //SEG182 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@8->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #1
+    sta mul_u16_sel.select
+  //SEG183 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#1 [phi:sin16s::@8->mul_u16_sel#1] -- register_copy 
+  //SEG184 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#1 [phi:sin16s::@8->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG185 [89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#1 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return+1
+  //SEG186 sin16s::@9
+  //SEG187 [90] (word) sin16s::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 ] )
+    // (word) sin16s::x3#0 = (word) mul_u16_sel::return#1  // register copy zp ZP_WORD:8
+  //SEG188 [91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] )
+    // (word) mul_u16_sel::v1#2 = (word) sin16s::x3#0  // register copy zp ZP_WORD:8
+  //SEG189 [92] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] )
+  //SEG190 [116] phi from sin16s::@9 to mul_u16_sel [phi:sin16s::@9->mul_u16_sel]
+  //SEG191 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #1
+    sta mul_u16_sel.select
+  //SEG192 [116] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mul_u16_sel#1] -- vwuz1=vwuc1 
+    lda #<$10000/6
+    sta mul_u16_sel.v2
+    lda #>$10000/6
+    sta mul_u16_sel.v2+1
+  //SEG193 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#2 [phi:sin16s::@9->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG194 [93] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return_10
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return_10+1
+  //SEG195 sin16s::@10
+  //SEG196 [94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] )
+    // (word) sin16s::x3_6#0 = (word) mul_u16_sel::return#10  // register copy zp ZP_WORD:6
+  //SEG197 [95] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ) -- vwuz1=vwuz2_minus_vwuz1 
+    lda x1
+    sec
+    sbc usinx
+    sta usinx
+    lda x1+1
+    sbc usinx+1
+    sta usinx+1
+  //SEG198 [96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] )
+    // (word) mul_u16_sel::v1#3 = (word) sin16s::x3#0  // register copy zp ZP_WORD:8
+  //SEG199 [97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+  //SEG200 [98] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  //SEG201 [116] phi from sin16s::@10 to mul_u16_sel [phi:sin16s::@10->mul_u16_sel]
+  //SEG202 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@10->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #0
+    sta mul_u16_sel.select
+  //SEG203 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#3 [phi:sin16s::@10->mul_u16_sel#1] -- register_copy 
+  //SEG204 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#3 [phi:sin16s::@10->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG205 [99] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return+1
+  //SEG206 sin16s::@11
+  //SEG207 [100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] )
+    // (word) sin16s::x4#0 = (word) mul_u16_sel::return#11  // register copy zp ZP_WORD:8
+  //SEG208 [101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] )
+    // (word) mul_u16_sel::v1#4 = (word) sin16s::x4#0  // register copy zp ZP_WORD:8
+  //SEG209 [102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) -- vwuz1=vwuz2 
+    lda x1
+    sta mul_u16_sel.v2
+    lda x1+1
+    sta mul_u16_sel.v2+1
+  //SEG210 [103] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  //SEG211 [116] phi from sin16s::@11 to mul_u16_sel [phi:sin16s::@11->mul_u16_sel]
+  //SEG212 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@11->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #0
+    sta mul_u16_sel.select
+  //SEG213 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#4 [phi:sin16s::@11->mul_u16_sel#1] -- register_copy 
+  //SEG214 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#4 [phi:sin16s::@11->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG215 [104] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ) -- vwuz1=vwuz2 
+    lda mul_u16_sel.return_14
+    sta mul_u16_sel.return
+    lda mul_u16_sel.return_14+1
+    sta mul_u16_sel.return+1
+  //SEG216 sin16s::@12
+  //SEG217 [105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5#0 ] )
+    // (word) sin16s::x5#0 = (word) mul_u16_sel::return#12  // register copy zp ZP_WORD:8
+  //SEG218 [106] (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] )
+    // (word) mul_u16_sel::v1#5 = (word) sin16s::x5#0  // register copy zp ZP_WORD:8
+  //SEG219 [107] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 mul_u16_sel::return#14 sin16s::usinx#0 ] )
+  //SEG220 [116] phi from sin16s::@12 to mul_u16_sel [phi:sin16s::@12->mul_u16_sel]
+  //SEG221 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:sin16s::@12->mul_u16_sel#0] -- vbuz1=vbuc1 
+    lda #3
+    sta mul_u16_sel.select
+  //SEG222 [116] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 [phi:sin16s::@12->mul_u16_sel#1] -- vwuz1=vwuc1 
+    lda #<$10000/$80
+    sta mul_u16_sel.v2
+    lda #>$10000/$80
+    sta mul_u16_sel.v2+1
+  //SEG223 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#5 [phi:sin16s::@12->mul_u16_sel#2] -- register_copy 
+    jsr mul_u16_sel
+  //SEG224 [108] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] )
+    // (word) mul_u16_sel::return#13 = (word) mul_u16_sel::return#14  // register copy zp ZP_WORD:18
+  //SEG225 sin16s::@13
+  //SEG226 [109] (word) sin16s::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5_128#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 sin16s::x5_128#0 ] )
+    // (word) sin16s::x5_128#0 = (word) mul_u16_sel::return#13  // register copy zp ZP_WORD:18
+  //SEG227 [110] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#10 sin16s::usinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#1 ] ) -- vwuz1=vwuz1_plus_vwuz2 
+    lda usinx
+    clc
+    adc x5_128
+    sta usinx
+    lda usinx+1
+    adc x5_128+1
+    sta usinx+1
+  //SEG228 [111] if((byte) sin16s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@16 [ sin16s::usinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::usinx#1 ] ) -- vbuxx_eq_0_then_la1 
+    cpx #0
+    beq b3
+  //SEG229 sin16s::@6
+  //SEG230 [112] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::sinx#1 ] ) -- vwsz1=_neg_vwsz1 
+    sec
+    lda sinx
+    eor #$ff
+    adc #0
+    sta sinx
+    lda sinx+1
+    eor #$ff
+    adc #0
+    sta sinx+1
+  //SEG231 [113] phi from sin16s::@16 sin16s::@6 to sin16s::@3 [phi:sin16s::@16/sin16s::@6->sin16s::@3]
+  //SEG232 [113] phi (signed word) sin16s::return#1 = (signed word~) sin16s::return#5 [phi:sin16s::@16/sin16s::@6->sin16s::@3#0] -- register_copy 
+  //SEG233 sin16s::@3
+  b3:
+  //SEG234 sin16s::@return
+  //SEG235 [114] return  [ sin16s::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
+    rts
+  //SEG236 sin16s::@16
+  //SEG237 [115] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1 [ sin16s::return#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#5 ] )
+    // (signed word~) sin16s::return#5 = (signed word)(word) sin16s::usinx#1  // register copy zp ZP_WORD:6
+}
+//SEG238 mul_u16_sel
 mul_u16_sel: {
     .label _0 = $e
     .label _1 = $e
@@ -9318,49 +9323,51 @@ mul_u16_sel: {
     .label return = 8
     .label return_10 = 6
     .label return_13 = $12
+    .label select = $14
     .label return_14 = $12
-  //SEG233 [113] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) -- vwuz1=vwuz2 
+  //SEG239 [117] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) -- vwuz1=vwuz2 
     lda v1
     sta mul16u.a
     lda v1+1
     sta mul16u.a+1
-  //SEG234 [114] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] )
+  //SEG240 [118] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] )
     // (word) mul16u::b#0 = (word) mul_u16_sel::v2#6  // register copy zp ZP_WORD:18
-  //SEG235 [115] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
+  //SEG241 [119] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
     jsr mul16u
-  //SEG236 [116] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] )
+  //SEG242 [120] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] )
     // (dword) mul16u::return#2 = (dword) mul16u::res#2  // register copy zp ZP_DWORD:14
-  //SEG237 mul_u16_sel::@2
-  //SEG238 [117] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] )
+  //SEG243 mul_u16_sel::@2
+  //SEG244 [121] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] )
     // (dword~) mul_u16_sel::$0 = (dword) mul16u::return#2  // register copy zp ZP_DWORD:14
-  //SEG239 [118] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] ) -- vduz1=vduz1_rol_vbuxx 
-    cpx #0
+  //SEG245 [122] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] ) -- vduz1=vduz1_rol_vbuz2 
+    ldy select
+    cpy #0
     beq !e+
   !:
     asl _1
     rol _1+1
     rol _1+2
     rol _1+3
-    dex
+    dey
     bne !-
   !e:
-  //SEG240 [119] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) -- vwuz1=_hi_vduz2 
+  //SEG246 [123] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) -- vwuz1=_hi_vduz2 
     lda _1+2
     sta return_14
     lda _1+3
     sta return_14+1
-  //SEG241 mul_u16_sel::@return
-  //SEG242 [120] return  [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] )
+  //SEG247 mul_u16_sel::@return
+  //SEG248 [124] return  [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] )
     rts
 }
-//SEG243 mul16u
+//SEG249 mul16u
 mul16u: {
-    .label mb = $16
-    .label a = $14
+    .label mb = $17
+    .label a = $15
     .label res = $e
     .label b = $12
     .label return = $e
-  //SEG244 [121] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) -- vduz1=_dword_vwuz2 
+  //SEG250 [125] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) -- vduz1=_dword_vwuz2 
     lda b
     sta mb
     lda b+1
@@ -9368,34 +9375,34 @@ mul16u: {
     lda #0
     sta mb+2
     sta mb+3
-  //SEG245 [122] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1]
-  //SEG246 [122] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#0 [phi:mul16u->mul16u::@1#0] -- register_copy 
-  //SEG247 [122] phi (dword) mul16u::res#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16u->mul16u::@1#1] -- vduz1=vbuc1 
+  //SEG251 [126] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1]
+  //SEG252 [126] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#0 [phi:mul16u->mul16u::@1#0] -- register_copy 
+  //SEG253 [126] phi (dword) mul16u::res#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16u->mul16u::@1#1] -- vduz1=vbuc1 
     sta res
     sta res+1
     sta res+2
     sta res+3
-  //SEG248 [122] phi (word) mul16u::a#2 = (word) mul16u::a#1 [phi:mul16u->mul16u::@1#2] -- register_copy 
-  //SEG249 mul16u::@1
+  //SEG254 [126] phi (word) mul16u::a#2 = (word) mul16u::a#1 [phi:mul16u->mul16u::@1#2] -- register_copy 
+  //SEG255 mul16u::@1
   b1:
-  //SEG250 [123] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vwuz1_neq_0_then_la1 
+  //SEG256 [127] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vwuz1_neq_0_then_la1 
     lda a
     bne b2
     lda a+1
     bne b2
-  //SEG251 mul16u::@return
-  //SEG252 [124] return  [ mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
+  //SEG257 mul16u::@return
+  //SEG258 [128] return  [ mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] )
     rts
-  //SEG253 mul16u::@2
+  //SEG259 mul16u::@2
   b2:
-  //SEG254 [125] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) -- vbuaa=vwuz1_band_vbuc1 
+  //SEG260 [129] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) -- vbuaa=vwuz1_band_vbuc1 
     lda a
     and #1
-  //SEG255 [126] if((byte~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vbuaa_eq_0_then_la1 
+  //SEG261 [130] if((byte~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vbuaa_eq_0_then_la1 
     cmp #0
     beq b4
-  //SEG256 mul16u::@7
-  //SEG257 [127] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) -- vduz1=vduz1_plus_vduz2 
+  //SEG262 mul16u::@7
+  //SEG263 [131] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) -- vduz1=vduz1_plus_vduz2 
     lda res
     clc
     adc mb
@@ -9409,77 +9416,77 @@ mul16u: {
     lda res+3
     adc mb+3
     sta res+3
-  //SEG258 [128] phi from mul16u::@2 mul16u::@7 to mul16u::@4 [phi:mul16u::@2/mul16u::@7->mul16u::@4]
-  //SEG259 [128] phi (dword) mul16u::res#6 = (dword) mul16u::res#2 [phi:mul16u::@2/mul16u::@7->mul16u::@4#0] -- register_copy 
-  //SEG260 mul16u::@4
+  //SEG264 [132] phi from mul16u::@2 mul16u::@7 to mul16u::@4 [phi:mul16u::@2/mul16u::@7->mul16u::@4]
+  //SEG265 [132] phi (dword) mul16u::res#6 = (dword) mul16u::res#2 [phi:mul16u::@2/mul16u::@7->mul16u::@4#0] -- register_copy 
+  //SEG266 mul16u::@4
   b4:
-  //SEG261 [129] (word) mul16u::a#0 ← (word) mul16u::a#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) -- vwuz1=vwuz1_ror_1 
+  //SEG267 [133] (word) mul16u::a#0 ← (word) mul16u::a#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) -- vwuz1=vwuz1_ror_1 
     clc
     ror a+1
     ror a
-  //SEG262 [130] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) -- vduz1=vduz1_rol_1 
+  //SEG268 [134] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) -- vduz1=vduz1_rol_1 
     asl mb
     rol mb+1
     rol mb+2
     rol mb+3
-  //SEG263 [122] phi from mul16u::@4 to mul16u::@1 [phi:mul16u::@4->mul16u::@1]
-  //SEG264 [122] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#1 [phi:mul16u::@4->mul16u::@1#0] -- register_copy 
-  //SEG265 [122] phi (dword) mul16u::res#2 = (dword) mul16u::res#6 [phi:mul16u::@4->mul16u::@1#1] -- register_copy 
-  //SEG266 [122] phi (word) mul16u::a#2 = (word) mul16u::a#0 [phi:mul16u::@4->mul16u::@1#2] -- register_copy 
+  //SEG269 [126] phi from mul16u::@4 to mul16u::@1 [phi:mul16u::@4->mul16u::@1]
+  //SEG270 [126] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#1 [phi:mul16u::@4->mul16u::@1#0] -- register_copy 
+  //SEG271 [126] phi (dword) mul16u::res#2 = (dword) mul16u::res#6 [phi:mul16u::@4->mul16u::@1#1] -- register_copy 
+  //SEG272 [126] phi (word) mul16u::a#2 = (word) mul16u::a#0 [phi:mul16u::@4->mul16u::@1#2] -- register_copy 
     jmp b1
 }
-//SEG267 div32u16u
+//SEG273 div32u16u
 div32u16u: {
-    .label return = $1a
+    .label return = $1b
     .label quotient_hi = $12
     .label quotient_lo = 8
-  //SEG268 [132] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] )
-  //SEG269 [141] phi from div32u16u to divr16u [phi:div32u16u->divr16u]
-  //SEG270 [141] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 
+  //SEG274 [136] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] )
+  //SEG275 [145] phi from div32u16u to divr16u [phi:div32u16u->divr16u]
+  //SEG276 [145] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 
     lda #<main.wavelength
     sta divr16u.divisor
     lda #>main.wavelength
     sta divr16u.divisor+1
-  //SEG271 [141] phi (word) divr16u::dividend#5 = >(const dword) PI2_u4f28#0 [phi:div32u16u->divr16u#1] -- vwuz1=vwuc1 
+  //SEG277 [145] phi (word) divr16u::dividend#5 = >(const dword) PI2_u4f28#0 [phi:div32u16u->divr16u#1] -- vwuz1=vwuc1 
     lda #<PI2_u4f28>>16
     sta divr16u.dividend
     lda #>PI2_u4f28>>16
     sta divr16u.dividend+1
-  //SEG272 [141] phi (word) divr16u::rem#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div32u16u->divr16u#2] -- vwuz1=vbuc1 
+  //SEG278 [145] phi (word) divr16u::rem#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div32u16u->divr16u#2] -- vwuz1=vbuc1 
     lda #<0
     sta divr16u.rem
     sta divr16u.rem+1
     jsr divr16u
-  //SEG273 [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] )
+  //SEG279 [137] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] )
     // (word) divr16u::return#2 = (word) divr16u::return#0  // register copy zp ZP_WORD:8
-  //SEG274 div32u16u::@2
-  //SEG275 [134] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) -- vwuz1=vwuz2 
+  //SEG280 div32u16u::@2
+  //SEG281 [138] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) -- vwuz1=vwuz2 
     lda divr16u.return
     sta quotient_hi
     lda divr16u.return+1
     sta quotient_hi+1
-  //SEG276 [135] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] )
+  //SEG282 [139] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] )
     // (word) divr16u::rem#4 = (word) rem16u#1  // register copy zp ZP_WORD:4
-  //SEG277 [136] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] )
-  //SEG278 [141] phi from div32u16u::@2 to divr16u [phi:div32u16u::@2->divr16u]
-  //SEG279 [141] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u::@2->divr16u#0] -- vwuz1=vwuc1 
+  //SEG283 [140] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] )
+  //SEG284 [145] phi from div32u16u::@2 to divr16u [phi:div32u16u::@2->divr16u]
+  //SEG285 [145] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u::@2->divr16u#0] -- vwuz1=vwuc1 
     lda #<main.wavelength
     sta divr16u.divisor
     lda #>main.wavelength
     sta divr16u.divisor+1
-  //SEG280 [141] phi (word) divr16u::dividend#5 = <(const dword) PI2_u4f28#0 [phi:div32u16u::@2->divr16u#1] -- vwuz1=vwuc1 
+  //SEG286 [145] phi (word) divr16u::dividend#5 = <(const dword) PI2_u4f28#0 [phi:div32u16u::@2->divr16u#1] -- vwuz1=vwuc1 
     lda #<PI2_u4f28&$ffff
     sta divr16u.dividend
     lda #>PI2_u4f28&$ffff
     sta divr16u.dividend+1
-  //SEG281 [141] phi (word) divr16u::rem#10 = (word) divr16u::rem#4 [phi:div32u16u::@2->divr16u#2] -- register_copy 
+  //SEG287 [145] phi (word) divr16u::rem#10 = (word) divr16u::rem#4 [phi:div32u16u::@2->divr16u#2] -- register_copy 
     jsr divr16u
-  //SEG282 [137] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] )
+  //SEG288 [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] )
     // (word) divr16u::return#3 = (word) divr16u::return#0  // register copy zp ZP_WORD:8
-  //SEG283 div32u16u::@3
-  //SEG284 [138] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] )
+  //SEG289 div32u16u::@3
+  //SEG290 [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] )
     // (word) div32u16u::quotient_lo#0 = (word) divr16u::return#3  // register copy zp ZP_WORD:8
-  //SEG285 [139] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) -- vduz1=vwuz2_dword_vwuz3 
+  //SEG291 [143] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) -- vduz1=vwuz2_dword_vwuz3 
     lda quotient_hi
     sta return+2
     lda quotient_hi+1
@@ -9488,59 +9495,59 @@ div32u16u: {
     sta return
     lda quotient_lo+1
     sta return+1
-  //SEG286 div32u16u::@return
-  //SEG287 [140] return  [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
+  //SEG292 div32u16u::@return
+  //SEG293 [144] return  [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
     rts
 }
-//SEG288 divr16u
+//SEG294 divr16u
 divr16u: {
     .label rem = 4
     .label dividend = 6
     .label quotient = 8
     .label return = 8
     .label divisor = 2
-  //SEG289 [142] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1]
-  //SEG290 [142] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuxx=vbuc1 
+  //SEG295 [146] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1]
+  //SEG296 [146] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuxx=vbuc1 
     ldx #0
-  //SEG291 [142] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1 
+  //SEG297 [146] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1 
     txa
     sta quotient
     sta quotient+1
-  //SEG292 [142] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#5 [phi:divr16u->divr16u::@1#2] -- register_copy 
-  //SEG293 [142] phi (word) divr16u::rem#5 = (word) divr16u::rem#10 [phi:divr16u->divr16u::@1#3] -- register_copy 
-  //SEG294 [142] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1]
-  //SEG295 [142] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy 
-  //SEG296 [142] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy 
-  //SEG297 [142] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy 
-  //SEG298 [142] phi (word) divr16u::rem#5 = (word) divr16u::rem#11 [phi:divr16u::@3->divr16u::@1#3] -- register_copy 
-  //SEG299 divr16u::@1
+  //SEG298 [146] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#5 [phi:divr16u->divr16u::@1#2] -- register_copy 
+  //SEG299 [146] phi (word) divr16u::rem#5 = (word) divr16u::rem#10 [phi:divr16u->divr16u::@1#3] -- register_copy 
+  //SEG300 [146] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1]
+  //SEG301 [146] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy 
+  //SEG302 [146] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy 
+  //SEG303 [146] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy 
+  //SEG304 [146] phi (word) divr16u::rem#5 = (word) divr16u::rem#11 [phi:divr16u::@3->divr16u::@1#3] -- register_copy 
+  //SEG305 divr16u::@1
   b1:
-  //SEG300 [143] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vwuz1=vwuz1_rol_1 
+  //SEG306 [147] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vwuz1=vwuz1_rol_1 
     asl rem
     rol rem+1
-  //SEG301 [144] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) -- vbuaa=_hi_vwuz1 
+  //SEG307 [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) -- vbuaa=_hi_vwuz1 
     lda dividend+1
-  //SEG302 [145] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) -- vbuaa=vbuaa_band_vbuc1 
+  //SEG308 [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) -- vbuaa=vbuaa_band_vbuc1 
     and #$80
-  //SEG303 [146] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vbuaa_eq_0_then_la1 
+  //SEG309 [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vbuaa_eq_0_then_la1 
     cmp #0
     beq b2
-  //SEG304 divr16u::@4
-  //SEG305 [147] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) -- vwuz1=vwuz1_bor_vbuc1 
+  //SEG310 divr16u::@4
+  //SEG311 [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) -- vwuz1=vwuz1_bor_vbuc1 
     lda #1
     ora rem
     sta rem
-  //SEG306 [148] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2]
-  //SEG307 [148] phi (word) divr16u::rem#6 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy 
-  //SEG308 divr16u::@2
+  //SEG312 [152] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2]
+  //SEG313 [152] phi (word) divr16u::rem#6 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy 
+  //SEG314 divr16u::@2
   b2:
-  //SEG309 [149] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) -- vwuz1=vwuz1_rol_1 
+  //SEG315 [153] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) -- vwuz1=vwuz1_rol_1 
     asl dividend
     rol dividend+1
-  //SEG310 [150] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1=vwuz1_rol_1 
+  //SEG316 [154] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1=vwuz1_rol_1 
     asl quotient
     rol quotient+1
-  //SEG311 [151] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1_lt_vwuz2_then_la1 
+  //SEG317 [155] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1_lt_vwuz2_then_la1 
     lda rem+1
     cmp divisor+1
     bcc b3
@@ -9549,13 +9556,13 @@ divr16u: {
     cmp divisor
     bcc b3
   !:
-  //SEG312 divr16u::@5
-  //SEG313 [152] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) -- vwuz1=_inc_vwuz1 
+  //SEG318 divr16u::@5
+  //SEG319 [156] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) -- vwuz1=_inc_vwuz1 
     inc quotient
     bne !+
     inc quotient+1
   !:
-  //SEG314 [153] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) -- vwuz1=vwuz1_minus_vwuz2 
+  //SEG320 [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) -- vwuz1=vwuz1_minus_vwuz2 
     lda rem
     sec
     sbc divisor
@@ -9563,21 +9570,21 @@ divr16u: {
     lda rem+1
     sbc divisor+1
     sta rem+1
-  //SEG315 [154] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3]
-  //SEG316 [154] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy 
-  //SEG317 [154] phi (word) divr16u::rem#11 = (word) divr16u::rem#6 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy 
-  //SEG318 divr16u::@3
+  //SEG321 [158] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3]
+  //SEG322 [158] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy 
+  //SEG323 [158] phi (word) divr16u::rem#11 = (word) divr16u::rem#6 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy 
+  //SEG324 divr16u::@3
   b3:
-  //SEG319 [155] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx=_inc_vbuxx 
+  //SEG325 [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx=_inc_vbuxx 
     inx
-  //SEG320 [156] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 
+  //SEG326 [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 
     cpx #$10
     bne b1
-  //SEG321 divr16u::@6
-  //SEG322 [157] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
+  //SEG327 divr16u::@6
+  //SEG328 [161] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
     // (word) rem16u#1 = (word) divr16u::rem#11  // register copy zp ZP_WORD:4
-  //SEG323 divr16u::@return
-  //SEG324 [158] return  [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
+  //SEG329 divr16u::@return
+  //SEG330 [162] return  [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
     rts
 }
 
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.sym b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.sym
index e32d29dd7..ece6ae57d 100644
--- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.sym
+++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.sym
@@ -1,4 +1,4 @@
-(label) @25
+(label) @26
 (label) @begin
 (label) @end
 (dword) PI2_u4f28
@@ -31,8 +31,8 @@
 (word) div32u16u::quotient_lo
 (word) div32u16u::quotient_lo#0 quotient_lo zp ZP_WORD:8 4.0
 (dword) div32u16u::return
-(dword) div32u16u::return#0 return zp ZP_DWORD:26 4.0
-(dword) div32u16u::return#1 return zp ZP_DWORD:26 1.3333333333333333
+(dword) div32u16u::return#0 return zp ZP_DWORD:27 4.0
+(dword) div32u16u::return#1 return zp ZP_DWORD:27 1.3333333333333333
 (word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
 (byte~) divr16u::$1 reg byte a 22.0
 (byte~) divr16u::$2 reg byte a 22.0
@@ -97,15 +97,15 @@
 (label) mul16u::@7
 (label) mul16u::@return
 (word) mul16u::a
-(word) mul16u::a#0 a zp ZP_WORD:20 101.0
-(word) mul16u::a#1 a zp ZP_WORD:20 1.3333333333333333
-(word) mul16u::a#2 a zp ZP_WORD:20 67.66666666666666
+(word) mul16u::a#0 a zp ZP_WORD:21 101.0
+(word) mul16u::a#1 a zp ZP_WORD:21 1.3333333333333333
+(word) mul16u::a#2 a zp ZP_WORD:21 67.66666666666666
 (word) mul16u::b
 (word) mul16u::b#0 b zp ZP_WORD:18 4.0
 (dword) mul16u::mb
-(dword) mul16u::mb#0 mb zp ZP_DWORD:22 4.0
-(dword) mul16u::mb#1 mb zp ZP_DWORD:22 202.0
-(dword) mul16u::mb#2 mb zp ZP_DWORD:22 43.57142857142858
+(dword) mul16u::mb#0 mb zp ZP_DWORD:23 4.0
+(dword) mul16u::mb#1 mb zp ZP_DWORD:23 202.0
+(dword) mul16u::mb#2 mb zp ZP_DWORD:23 43.57142857142858
 (dword) mul16u::res
 (dword) mul16u::res#1 res zp ZP_DWORD:14 202.0
 (dword) mul16u::res#2 res zp ZP_DWORD:14 50.83333333333333
@@ -118,29 +118,29 @@
 (label) mul_u16_sel::@2
 (label) mul_u16_sel::@return
 (word) mul_u16_sel::return
-(word) mul_u16_sel::return#0 return zp ZP_WORD:8 22.0
-(word) mul_u16_sel::return#1 return zp ZP_WORD:8 22.0
-(word) mul_u16_sel::return#10 return#10 zp ZP_WORD:6 22.0
-(word) mul_u16_sel::return#11 return zp ZP_WORD:8 22.0
-(word) mul_u16_sel::return#12 return zp ZP_WORD:8 22.0
-(word) mul_u16_sel::return#13 return#13 zp ZP_WORD:18 22.0
-(word) mul_u16_sel::return#14 return#14 zp ZP_WORD:18 8.5
+(word) mul_u16_sel::return#0 return zp ZP_WORD:8 4.0
+(word) mul_u16_sel::return#1 return zp ZP_WORD:8 4.0
+(word) mul_u16_sel::return#10 return#10 zp ZP_WORD:6 4.0
+(word) mul_u16_sel::return#11 return zp ZP_WORD:8 4.0
+(word) mul_u16_sel::return#12 return zp ZP_WORD:8 4.0
+(word) mul_u16_sel::return#13 return#13 zp ZP_WORD:18 4.0
+(word) mul_u16_sel::return#14 return#14 zp ZP_WORD:18 1.75
 (byte) mul_u16_sel::select
-(byte) mul_u16_sel::select#6 reg byte x 0.3333333333333333
+(byte) mul_u16_sel::select#6 select zp ZP_BYTE:20 0.3333333333333333
 (word) mul_u16_sel::v1
-(word) mul_u16_sel::v1#0 v1 zp ZP_WORD:8 11.0
-(word) mul_u16_sel::v1#1 v1 zp ZP_WORD:8 11.0
-(word) mul_u16_sel::v1#2 v1 zp ZP_WORD:8 22.0
-(word) mul_u16_sel::v1#3 v1 zp ZP_WORD:8 11.0
-(word) mul_u16_sel::v1#4 v1 zp ZP_WORD:8 11.0
-(word) mul_u16_sel::v1#5 v1 zp ZP_WORD:8 22.0
-(word) mul_u16_sel::v1#6 v1 zp ZP_WORD:8 68.0
+(word) mul_u16_sel::v1#0 v1 zp ZP_WORD:8 2.0
+(word) mul_u16_sel::v1#1 v1 zp ZP_WORD:8 2.0
+(word) mul_u16_sel::v1#2 v1 zp ZP_WORD:8 4.0
+(word) mul_u16_sel::v1#3 v1 zp ZP_WORD:8 2.0
+(word) mul_u16_sel::v1#4 v1 zp ZP_WORD:8 2.0
+(word) mul_u16_sel::v1#5 v1 zp ZP_WORD:8 4.0
+(word) mul_u16_sel::v1#6 v1 zp ZP_WORD:8 14.0
 (word) mul_u16_sel::v2
-(word) mul_u16_sel::v2#0 v2 zp ZP_WORD:18 22.0
-(word) mul_u16_sel::v2#1 v2 zp ZP_WORD:18 22.0
-(word) mul_u16_sel::v2#3 v2 zp ZP_WORD:18 22.0
-(word) mul_u16_sel::v2#4 v2 zp ZP_WORD:18 22.0
-(word) mul_u16_sel::v2#6 v2 zp ZP_WORD:18 23.0
+(word) mul_u16_sel::v2#0 v2 zp ZP_WORD:18 4.0
+(word) mul_u16_sel::v2#1 v2 zp ZP_WORD:18 4.0
+(word) mul_u16_sel::v2#3 v2 zp ZP_WORD:18 4.0
+(word) mul_u16_sel::v2#4 v2 zp ZP_WORD:18 4.0
+(word) mul_u16_sel::v2#6 v2 zp ZP_WORD:18 5.0
 (void()) print_byte((byte) print_byte::b)
 (byte~) print_byte::$0 reg byte a 4.0
 (byte~) print_byte::$2 reg byte a 4.0
@@ -187,85 +187,90 @@
 (word) print_word::w
 (word) rem16u
 (word) rem16u#1 rem16u zp ZP_WORD:4 0.8
+(signed word()) sin16s((dword) sin16s::x)
+(dword~) sin16s::$6 $6 zp ZP_DWORD:14 4.0
+(label) sin16s::@1
+(label) sin16s::@10
+(label) sin16s::@11
+(label) sin16s::@12
+(label) sin16s::@13
+(label) sin16s::@16
+(label) sin16s::@2
+(label) sin16s::@3
+(label) sin16s::@4
+(label) sin16s::@5
+(label) sin16s::@6
+(label) sin16s::@8
+(label) sin16s::@9
+(label) sin16s::@return
+(byte) sin16s::isUpper
+(byte) sin16s::isUpper#10 reg byte x 0.05555555555555555
+(signed word) sin16s::return
+(signed word) sin16s::return#0 return zp ZP_WORD:6 22.0
+(signed word) sin16s::return#1 return zp ZP_WORD:6 5.0
+(signed word~) sin16s::return#5 return zp ZP_WORD:6 4.0
+(signed word) sin16s::sinx
+(signed word) sin16s::sinx#1 sinx zp ZP_WORD:6 4.0
+(word) sin16s::usinx
+(word) sin16s::usinx#0 usinx zp ZP_WORD:6 0.26666666666666666
+(word) sin16s::usinx#1 usinx zp ZP_WORD:6 1.0
+(dword) sin16s::x
+(dword) sin16s::x#0 x zp ZP_DWORD:14 8.5
+(dword) sin16s::x#1 x zp ZP_DWORD:14 4.0
+(dword) sin16s::x#2 x zp ZP_DWORD:14 4.0
+(dword) sin16s::x#4 x zp ZP_DWORD:14 5.0
+(dword) sin16s::x#6 x zp ZP_DWORD:14 6.0
+(word) sin16s::x1
+(word) sin16s::x1#0 x1 zp ZP_WORD:31 0.6363636363636365
+(word) sin16s::x2
+(word) sin16s::x2#0 x2 zp ZP_WORD:8 4.0
+(word) sin16s::x3
+(word) sin16s::x3#0 x3 zp ZP_WORD:8 1.0
+(word) sin16s::x3_6
+(word) sin16s::x3_6#0 x3_6 zp ZP_WORD:6 4.0
+(word) sin16s::x4
+(word) sin16s::x4#0 x4 zp ZP_WORD:8 4.0
+(word) sin16s::x5
+(word) sin16s::x5#0 x5 zp ZP_WORD:8 4.0
+(word) sin16s::x5_128
+(word) sin16s::x5_128#0 x5_128 zp ZP_WORD:18 4.0
 (void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength)
-(dword~) sin16s_gen::$7 $7 zp ZP_DWORD:14 22.0
+(signed word~) sin16s_gen::$1 $1 zp ZP_WORD:6 22.0
 (label) sin16s_gen::@1
-(label) sin16s_gen::@10
-(label) sin16s_gen::@11
-(label) sin16s_gen::@12
-(label) sin16s_gen::@13
-(label) sin16s_gen::@14
-(label) sin16s_gen::@15
-(label) sin16s_gen::@17
-(label) sin16s_gen::@19
-(label) sin16s_gen::@2
 (label) sin16s_gen::@3
 (label) sin16s_gen::@4
-(label) sin16s_gen::@5
-(label) sin16s_gen::@6
-(label) sin16s_gen::@7
-(label) sin16s_gen::@9
 (label) sin16s_gen::@return
 (word) sin16s_gen::i
 (word) sin16s_gen::i#1 i zp ZP_WORD:4 16.5
-(word) sin16s_gen::i#10 i zp ZP_WORD:4 0.46808510638297873
-(byte) sin16s_gen::isUpper
-(byte) sin16s_gen::isUpper#10 reg byte y 0.3055555555555556
+(word) sin16s_gen::i#2 i zp ZP_WORD:4 2.75
 (signed word*) sin16s_gen::sintab
 (signed word*) sin16s_gen::sintab#1 sintab zp ZP_WORD:2 5.5
-(signed word*) sin16s_gen::sintab#10 sintab zp ZP_WORD:2 0.7333333333333333
-(signed word) sin16s_gen::sinx
-(signed word) sin16s_gen::sinx#1 sinx zp ZP_WORD:6 22.0
-(signed word) sin16s_gen::sinx#2 sinx zp ZP_WORD:6 33.0
-(signed word~) sin16s_gen::sinx#3 sinx zp ZP_WORD:6 22.0
+(signed word*) sin16s_gen::sintab#2 sintab zp ZP_WORD:2 5.5
 (dword) sin16s_gen::step
-(dword) sin16s_gen::step#0 step zp ZP_DWORD:26 0.26
-(word) sin16s_gen::usinx
-(word) sin16s_gen::usinx#0 usinx zp ZP_WORD:6 1.4666666666666666
-(word) sin16s_gen::usinx#1 usinx zp ZP_WORD:6 5.5
+(dword) sin16s_gen::step#0 step zp ZP_DWORD:27 1.1818181818181819
 (word) sin16s_gen::wavelength
 (dword) sin16s_gen::x
 (dword) sin16s_gen::x#1 x zp ZP_DWORD:10 7.333333333333333
-(dword) sin16s_gen::x#10 x zp ZP_DWORD:10 1.1956521739130435
-(word) sin16s_gen::x1
-(word) sin16s_gen::x1#0 x1 zp ZP_WORD:30 3.5
-(word) sin16s_gen::x2
-(word) sin16s_gen::x2#0 x2 zp ZP_WORD:8 22.0
-(word) sin16s_gen::x3
-(word) sin16s_gen::x3#0 x3 zp ZP_WORD:8 5.5
-(word) sin16s_gen::x3_6
-(word) sin16s_gen::x3_6#0 x3_6 zp ZP_WORD:6 22.0
-(word) sin16s_gen::x4
-(word) sin16s_gen::x4#0 x4 zp ZP_WORD:8 22.0
-(word) sin16s_gen::x5
-(word) sin16s_gen::x5#0 x5 zp ZP_WORD:8 22.0
-(word) sin16s_gen::x5_128
-(word) sin16s_gen::x5_128#0 x5_128 zp ZP_WORD:18 22.0
-(dword) sin16s_gen::xp
-(dword) sin16s_gen::xp#1 xp zp ZP_DWORD:14 22.0
-(dword) sin16s_gen::xp#2 xp zp ZP_DWORD:14 22.0
-(dword) sin16s_gen::xp#3 xp zp ZP_DWORD:14 27.5
-(dword) sin16s_gen::xp#5 xp zp ZP_DWORD:14 33.0
-(dword~) sin16s_gen::xp#7 xp zp ZP_DWORD:14 22.0
+(dword) sin16s_gen::x#2 x zp ZP_DWORD:10 4.714285714285714
 
-zp ZP_WORD:2 [ main::st1#2 main::st1#1 print_cls::sc#2 print_cls::sc#1 sin16s_gen::sintab#10 sin16s_gen::sintab#1 divr16u::divisor#6 ]
-zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 sin16s_gen::i#10 sin16s_gen::i#1 divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 rem16u#1 ]
-zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 main::sw#0 sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 sin16s_gen::usinx#1 sin16s_gen::usinx#0 sin16s_gen::x3_6#0 mul_u16_sel::return#10 divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ]
+zp ZP_WORD:2 [ main::st1#2 main::st1#1 print_cls::sc#2 print_cls::sc#1 sin16s_gen::sintab#2 sin16s_gen::sintab#1 divr16u::divisor#6 ]
+zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 sin16s_gen::i#2 sin16s_gen::i#1 divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 rem16u#1 ]
+zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 main::sw#0 sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 sin16s::usinx#0 sin16s::x3_6#0 mul_u16_sel::return#10 divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ]
 reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
 reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ]
-zp ZP_WORD:8 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 mul_u16_sel::return#11 sin16s_gen::x5#0 mul_u16_sel::return#12 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ]
-zp ZP_DWORD:10 [ sin16s_gen::x#10 sin16s_gen::x#1 ]
-reg byte y [ sin16s_gen::isUpper#10 ]
-zp ZP_DWORD:14 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 sin16s_gen::$7 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 mul_u16_sel::$1 ]
-zp ZP_WORD:18 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul16u::b#0 mul_u16_sel::return#13 sin16s_gen::x5_128#0 mul_u16_sel::return#14 div32u16u::quotient_hi#0 ]
-reg byte x [ mul_u16_sel::select#6 ]
-zp ZP_WORD:20 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ]
-zp ZP_DWORD:22 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ]
+zp ZP_WORD:8 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 mul_u16_sel::return#11 sin16s::x5#0 mul_u16_sel::return#12 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ]
+zp ZP_DWORD:10 [ sin16s_gen::x#2 sin16s_gen::x#1 ]
+reg byte x [ sin16s::isUpper#10 ]
+zp ZP_DWORD:14 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 sin16s::$6 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 mul_u16_sel::$1 ]
+zp ZP_WORD:18 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 mul16u::b#0 mul_u16_sel::return#13 sin16s::x5_128#0 mul_u16_sel::return#14 div32u16u::quotient_hi#0 ]
+zp ZP_BYTE:20 [ mul_u16_sel::select#6 ]
+zp ZP_WORD:21 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ]
+zp ZP_DWORD:23 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ]
 reg byte x [ divr16u::i#2 divr16u::i#1 ]
 reg byte a [ print_byte::$0 ]
 reg byte a [ print_byte::$2 ]
-zp ZP_DWORD:26 [ div32u16u::return#0 sin16s_gen::step#0 div32u16u::return#1 ]
-zp ZP_WORD:30 [ sin16s_gen::x1#0 ]
+zp ZP_DWORD:27 [ div32u16u::return#0 sin16s_gen::step#0 div32u16u::return#1 ]
+zp ZP_WORD:31 [ sin16s::x1#0 ]
 reg byte a [ mul16u::$1 ]
 reg byte a [ divr16u::$1 ]
 reg byte a [ divr16u::$2 ]
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.cfg b/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.cfg
new file mode 100644
index 000000000..0ccaaa04f
--- /dev/null
+++ b/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.cfg
@@ -0,0 +1,18 @@
+@begin: scope:[]  from
+  [0] phi() [ ] ( )
+  to:@1
+@1: scope:[]  from @begin
+  [1] phi() [ ] ( )
+  [2] call main param-assignment [ ] ( )
+  to:@end
+@end: scope:[]  from @1
+  [3] phi() [ ] ( )
+main: scope:[main]  from @1
+  [4] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← >>(const dword) PI_u4f28#0 [ ] ( main:2 [ ] )
+  [5] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← <>(const dword) PI_u4f28#0 [ ] ( main:2 [ ] )
+  [6] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← ><(const dword) PI_u4f28#0 [ ] ( main:2 [ ] )
+  [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← <<(const dword) PI_u4f28#0 [ ] ( main:2 [ ] )
+  to:main::@return
+main::@return: scope:[main]  from main
+  [8] return  [ ] ( main:2 [ ] )
+  to:@return
diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.sym b/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.sym
new file mode 100644
index 000000000..5b3c9aca0
--- /dev/null
+++ b/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.sym
@@ -0,0 +1,10 @@
+(label) @1
+(label) @begin
+(label) @end
+(dword) PI_u4f28
+(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857
+(void()) main()
+(label) main::@return
+(byte*) main::SCREEN
+(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
+