1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-09-08 17:54:40 +00:00

Optimized sin /128 part.

This commit is contained in:
jespergravgaard 2018-02-25 00:08:11 +01:00
parent f0917c7bed
commit 73bdd4ff8d
8 changed files with 1633 additions and 1776 deletions

View File

@ -0,0 +1,6 @@
ldy #4
!:
lsr {z1}+1
ror {z1}
dey
bne !-

View File

@ -0,0 +1,10 @@
lda {z2}+1
sta {z1}+1
lda {z2}
sta {z1}
ldy #4
!:
lsr {z1}+1
ror {z1}
dey
bne !-

View File

@ -68,6 +68,15 @@ word divr16u(word dividend, word divisor, word rem) {
return quotient;
}
// Divide unsigned 32-bit dword dividend with a 16-bit word divisor
// The 16-bit word remainder can be found in rem16u after the division
dword div32u16u(dword dividend, word divisor) {
word quotient_hi = divr16u(>dividend, divisor, 0);
word quotient_lo = divr16u(<dividend, divisor, rem16u);
dword quotient = { quotient_hi, quotient_lo};
return quotient;
}
// Remainder after signed 8 bit division
signed byte rem8s = 0;

View File

@ -73,7 +73,8 @@ signed word sin16s(dword x) {
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;
//word x5_128 = mul_u16_sel(x5, $10000/128, 3); // u[1.15] x^5/128;
word x5_128 = x5>>4;
usinx = usinx + x5_128; // u[1.15] (always an initial zero)
signed word sinx = (signed word)usinx; // s[0.15]
if(isUpper!=0) {
@ -128,11 +129,3 @@ word mul_u16_sel(word v1, word v2, byte select) {
return >mul16u(v1, v2)<<select;
}
// Divide unsigned 32-bit dword dividend with a 16-bit word divisor
// The 16-bit word remainder can be found in rem16u after the division
dword div32u16u(dword dividend, word divisor) {
word quotient_hi = divr16u(>dividend, divisor, 0);
word quotient_lo = divr16u(<dividend, divisor, rem16u);
dword quotient = { quotient_hi, quotient_lo};
return quotient;
}

View File

@ -238,7 +238,7 @@ sin16s: {
.label x3_6 = $13
.label usinx = 6
.label x4 = 8
.label x5 = 8
.label x5 = $13
.label x5_128 = $13
.label sinx = 6
.label isUpper = $e
@ -364,25 +364,21 @@ sin16s: {
ldx #0
jsr mul_u16_sel
lda mul_u16_sel.return
sta mul_u16_sel.return_11
sta mul_u16_sel.return_10
lda mul_u16_sel.return+1
sta mul_u16_sel.return_11+1
sta mul_u16_sel.return_10+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
sta mul_u16_sel.return_12
lda mul_u16_sel.return+1
sta mul_u16_sel.return_12+1
ldx #3
lda #<$10000/$80
sta mul_u16_sel.v2
lda #>$10000/$80
sta mul_u16_sel.v2+1
jsr mul_u16_sel
ldy #4
!:
lsr x5_128+1
ror x5_128
dey
bne !-
lda usinx
clc
adc x5_128
@ -411,8 +407,7 @@ mul_u16_sel: {
.label v2 = $13
.label return = $13
.label return_1 = 8
.label return_11 = 8
.label return_12 = 8
.label return_10 = 8
lda v1
sta mul16u.a
lda v1+1
@ -486,9 +481,9 @@ mul16u: {
jmp b1
}
div32u16u: {
.label return = $1b
.label quotient_hi = $13
.label quotient_lo = 8
.label return = $1b
lda #<main.wavelength
sta divr16u.divisor
lda #>main.wavelength

View File

@ -125,11 +125,11 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
to:@return
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 ] )
[59] call div32u16u param-assignment [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] )
[60] (dword) div32u16u::return#2 ← (dword) div32u16u::return#0 [ div32u16u::return#2 ] ( main:2::sin16s_gen:5 [ div32u16u::return#2 ] )
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 ] )
[61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#2 [ 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::@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 ] )
@ -157,169 +157,164 @@ 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 ] )
[75] (byte) sin16s::isUpper#2 ← 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#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::x#4 sin16s::isUpper#2 ] )
[75] (dword) sin16s::x#4 ← phi( sin16s/(dword) sin16s::x#0 sin16s::@4/(dword) sin16s::x#1 ) [ sin16s::x#4 sin16s::isUpper#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::x#4 sin16s::isUpper#2 ] )
[76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#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::x#4 sin16s::isUpper#2 ] )
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 ] )
[77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#2 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#2 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 ] )
[78] (dword) sin16s::x#6 ← phi( sin16s::@1/(dword) sin16s::x#4 sin16s::@5/(dword) sin16s::x#2 ) [ sin16s::isUpper#2 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#2 sin16s::x#6 ] )
[79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#2 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#2 sin16s::$6 ] )
[80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#2 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#2 sin16s::x1#0 ] )
[81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 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#2 sin16s::x1#0 mul_u16_sel::v1#0 ] )
[82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 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#2 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] )
[83] call mul_u16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#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#2 sin16s::x1#0 mul_u16_sel::return#12 ] )
[84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#2 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#2 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 ] )
[85] (word) sin16s::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s::isUpper#2 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#2 sin16s::x1#0 sin16s::x2#0 ] )
[86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#2 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#2 sin16s::x1#0 mul_u16_sel::v1#1 ] )
[87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 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#2 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] )
[88] call mul_u16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#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#2 sin16s::x1#0 mul_u16_sel::return#12 ] )
[89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#2 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#2 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 ] )
[90] (word) sin16s::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s::isUpper#2 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#2 sin16s::x1#0 sin16s::x3#0 ] )
[91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#2 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#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] )
[92] call mul_u16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#12 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#2 sin16s::x1#0 mul_u16_sel::return#12 sin16s::x3#0 ] )
[93] (word) mul_u16_sel::return#2 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#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#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#2 ] )
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 ] )
[94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#2 [ sin16s::isUpper#2 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#2 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#2 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#2 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] )
[96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#2 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#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] )
[97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 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#2 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#2 sin16s::x1#0 mul_u16_sel::return#12 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#2 sin16s::x1#0 mul_u16_sel::return#12 sin16s::usinx#0 ] )
[99] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#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#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#10 ] )
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 ] )
[100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#2 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#2 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] )
[101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#2 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#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] )
[102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 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#2 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] )
[103] call mul_u16_sel param-assignment [ sin16s::isUpper#2 mul_u16_sel::return#12 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#2 mul_u16_sel::return#12 sin16s::usinx#0 ] )
[104] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#2 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#2 sin16s::usinx#0 mul_u16_sel::return#11 ] )
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 ] )
[105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#2 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#2 sin16s::usinx#0 sin16s::x5#0 ] )
[106] (word) sin16s::x5_128#0 ← (word) sin16s::x5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ sin16s::isUpper#2 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#2 sin16s::usinx#0 sin16s::x5_128#0 ] )
[107] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#2 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#2 sin16s::usinx#1 ] )
[108] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 [ 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 ] )
sin16s::@6: scope:[sin16s] from sin16s::@12
[109] (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 ] )
sin16s::@3: scope:[sin16s] from sin16s::@15 sin16s::@6
[110] (signed word) sin16s::return#1 ← phi( sin16s::@15/(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 ] )
[111] 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 ] )
sin16s::@15: scope:[sin16s] from sin16s::@12
[112] (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 ] )
mul_u16_sel: scope:[mul_u16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9
[113] (byte) mul_u16_sel::select#5 ← 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::@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#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] ( 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#2 sin16s::x1#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] 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#2 sin16s::x1#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] 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#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] 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#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] 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#2 sin16s::usinx#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] )
[113] (word) mul_u16_sel::v2#5 ← phi( sin16s::@10/(word) mul_u16_sel::v2#3 sin16s::@11/(word) mul_u16_sel::v2#4 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#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] ( 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#2 sin16s::x1#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] 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#2 sin16s::x1#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] 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#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] 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#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] 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#2 sin16s::usinx#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] )
[113] (word) mul_u16_sel::v1#5 ← phi( sin16s::@10/(word) mul_u16_sel::v1#3 sin16s::@11/(word) mul_u16_sel::v1#4 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#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] ( 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#2 sin16s::x1#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] 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#2 sin16s::x1#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] 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#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] 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#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] 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#2 sin16s::usinx#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] )
[114] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#5 [ mul_u16_sel::v2#5 mul_u16_sel::select#5 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#2 sin16s::x1#0 mul_u16_sel::v2#5 mul_u16_sel::select#5 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#2 sin16s::x1#0 mul_u16_sel::v2#5 mul_u16_sel::select#5 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#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#5 mul_u16_sel::select#5 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#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#5 mul_u16_sel::select#5 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#2 sin16s::usinx#0 mul_u16_sel::v2#5 mul_u16_sel::select#5 mul16u::a#1 ] )
[115] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#5 [ mul_u16_sel::select#5 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#2 sin16s::x1#0 mul_u16_sel::select#5 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#2 sin16s::x1#0 mul_u16_sel::select#5 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#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 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#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 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#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::b#0 ] )
[116] call mul16u param-assignment [ mul_u16_sel::select#5 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#2 sin16s::x1#0 mul_u16_sel::select#5 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#2 sin16s::x1#0 mul_u16_sel::select#5 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#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 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#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 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#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 ] )
[117] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#5 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#2 sin16s::x1#0 mul_u16_sel::select#5 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#2 sin16s::x1#0 mul_u16_sel::select#5 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#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 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#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 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#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::return#2 ] )
to:mul_u16_sel::@2
mul_u16_sel::@2: scope:[mul_u16_sel] from mul_u16_sel
[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 ] )
[118] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#5 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#2 sin16s::x1#0 mul_u16_sel::select#5 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#2 sin16s::x1#0 mul_u16_sel::select#5 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#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 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#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 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#2 sin16s::usinx#0 mul_u16_sel::select#5 mul_u16_sel::$0 ] )
[119] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#5 [ 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#2 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#2 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#2 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#2 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#2 sin16s::usinx#0 mul_u16_sel::$1 ] )
[120] (word) mul_u16_sel::return#12 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#12 ] ( 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#2 sin16s::x1#0 mul_u16_sel::return#12 ] 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#2 sin16s::x1#0 mul_u16_sel::return#12 ] 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#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#12 ] 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#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#12 ] 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#2 sin16s::usinx#0 mul_u16_sel::return#12 ] )
to:mul_u16_sel::@return
mul_u16_sel::@return: scope:[mul_u16_sel] from mul_u16_sel::@2
[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 ] )
[121] return [ mul_u16_sel::return#12 ] ( 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#2 sin16s::x1#0 mul_u16_sel::return#12 ] 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#2 sin16s::x1#0 mul_u16_sel::return#12 ] 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#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#12 ] 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#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#12 ] 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#2 sin16s::usinx#0 mul_u16_sel::return#12 ] )
to:@return
mul16u: scope:[mul16u] from mul_u16_sel
[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 ] )
[122] (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:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] )
to:mul16u::@1
mul16u::@1: scope:[mul16u] from mul16u mul16u::@4
[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 ] )
[123] (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:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
[123] (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:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
[123] (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:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
[124] 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:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
to:mul16u::@return
mul16u::@return: scope:[mul16u] from mul16u::@1
[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 ] )
[125] return [ mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 ] )
to:@return
mul16u::@2: scope:[mul16u] from mul16u::@1
[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 ] )
[126] (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:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] )
[127] 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:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
to:mul16u::@7
mul16u::@7: scope:[mul16u] from mul16u::@2
[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 ] )
[128] (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:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] )
to:mul16u::@4
mul16u::@4: scope:[mul16u] from mul16u::@2 mul16u::@7
[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 ] )
[129] (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:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] )
[130] (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:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] )
[131] (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:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] )
to:mul16u::@1
div32u16u: scope:[div32u16u] from sin16s_gen
[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 ] )
[132] phi() [ ] ( main:2::sin16s_gen:5::div32u16u:59 [ ] )
[133] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] )
[134] (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
[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 ] )
[135] (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 ] )
[136] (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 ] )
[137] 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 ] )
[138] (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
[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 ] )
[139] (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 ] )
[140] (dword) div32u16u::return#0 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#0 ] )
to:div32u16u::@return
div32u16u::@return: scope:[div32u16u] from div32u16u::@3
[144] return [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] )
[141] return [ div32u16u::return#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#0 ] )
to:@return
divr16u: scope:[divr16u] from div32u16u div32u16u::@2
[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 ] )
[142] (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:133 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
[142] (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:133 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
[142] (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:133 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
to:divr16u::@1
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
[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 ] )
[143] (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:133 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
[143] (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:133 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
[143] (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:133 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
[143] (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:133 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
[144] (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:133 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
[145] (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:133 [ 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:137 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] )
[146] (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:133 [ 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:137 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] )
[147] 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:133 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ 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
[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 ] )
[148] (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:133 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ 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
[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 ] )
[149] (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:133 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] )
[150] (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:133 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] )
[151] (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:133 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
[152] 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:133 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ 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
[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 ] )
[153] (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:133 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] )
[154] (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:133 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ 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
[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 ] )
[155] (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:133 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] )
[155] (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:133 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] )
[156] (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:133 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] )
[157] 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:133 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ 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
[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 ] )
[158] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
to:divr16u::@return
divr16u::@return: scope:[divr16u] from divr16u::@6
[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 ] )
[159] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
to:@return

File diff suppressed because it is too large Load Diff

View File

@ -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:27 4.0
(dword) div32u16u::return#1 return zp ZP_DWORD:27 1.3333333333333333
(dword) div32u16u::return#0 return zp ZP_DWORD:27 1.3333333333333333
(dword) div32u16u::return#2 return zp ZP_DWORD:27 4.0
(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
@ -120,27 +120,25 @@
(word) mul_u16_sel::return
(word) mul_u16_sel::return#0 return zp ZP_WORD:19 4.0
(word) mul_u16_sel::return#1 return#1 zp ZP_WORD:8 4.0
(word) mul_u16_sel::return#10 return zp ZP_WORD:19 4.0
(word) mul_u16_sel::return#11 return#11 zp ZP_WORD:8 4.0
(word) mul_u16_sel::return#12 return#12 zp ZP_WORD:8 4.0
(word) mul_u16_sel::return#13 return zp ZP_WORD:19 4.0
(word) mul_u16_sel::return#14 return zp ZP_WORD:19 1.75
(word) mul_u16_sel::return#10 return#10 zp ZP_WORD:8 4.0
(word) mul_u16_sel::return#11 return zp ZP_WORD:19 4.0
(word) mul_u16_sel::return#12 return zp ZP_WORD:19 1.714285714285714
(word) mul_u16_sel::return#2 return zp ZP_WORD:19 4.0
(byte) mul_u16_sel::select
(byte) mul_u16_sel::select#6 reg byte x 0.3333333333333333
(byte) mul_u16_sel::select#5 reg byte x 0.3333333333333333
(word) mul_u16_sel::v1
(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::v1#5 v1 zp ZP_WORD:8 12.0
(word) mul_u16_sel::v2
(word) mul_u16_sel::v2#0 v2 zp ZP_WORD:19 4.0
(word) mul_u16_sel::v2#1 v2 zp ZP_WORD:19 4.0
(word) mul_u16_sel::v2#3 v2 zp ZP_WORD:19 4.0
(word) mul_u16_sel::v2#4 v2 zp ZP_WORD:19 4.0
(word) mul_u16_sel::v2#6 v2 zp ZP_WORD:19 5.0
(word) mul_u16_sel::v2#5 v2 zp ZP_WORD:19 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
@ -193,8 +191,7 @@
(label) sin16s::@10
(label) sin16s::@11
(label) sin16s::@12
(label) sin16s::@13
(label) sin16s::@16
(label) sin16s::@15
(label) sin16s::@2
(label) sin16s::@3
(label) sin16s::@4
@ -204,7 +201,7 @@
(label) sin16s::@9
(label) sin16s::@return
(byte) sin16s::isUpper
(byte) sin16s::isUpper#10 isUpper zp ZP_BYTE:14 0.05555555555555555
(byte) sin16s::isUpper#2 isUpper zp ZP_BYTE:14 0.06060606060606061
(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
@ -212,7 +209,7 @@
(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#0 usinx zp ZP_WORD:6 0.3333333333333333
(word) sin16s::usinx#1 usinx zp ZP_WORD:6 1.0
(dword) sin16s::x
(dword) sin16s::x#0 x zp ZP_DWORD:15 8.5
@ -231,7 +228,7 @@
(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#0 x5 zp ZP_WORD:19 4.0
(word) sin16s::x5_128
(word) sin16s::x5_128#0 x5_128 zp ZP_WORD:19 4.0
(void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength)
@ -258,18 +255,18 @@ zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 sin16s_gen::i#
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 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#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 sin16s::x4#0 sin16s::x5#0 mul_u16_sel::return#1 mul_u16_sel::return#11 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_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#5 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 sin16s::x4#0 mul_u16_sel::return#1 mul_u16_sel::return#10 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 ]
zp ZP_BYTE:14 [ sin16s::isUpper#10 ]
zp ZP_BYTE:14 [ sin16s::isUpper#2 ]
zp ZP_DWORD:15 [ 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:19 [ 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#0 mul_u16_sel::return#14 mul_u16_sel::return#10 sin16s::x3_6#0 mul_u16_sel::return#13 sin16s::x5_128#0 div32u16u::quotient_hi#0 ]
reg byte x [ mul_u16_sel::select#6 ]
zp ZP_WORD:19 [ mul_u16_sel::v2#5 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#0 mul_u16_sel::return#12 mul_u16_sel::return#2 sin16s::x3_6#0 mul_u16_sel::return#11 sin16s::x5#0 sin16s::x5_128#0 div32u16u::quotient_hi#0 ]
reg byte x [ mul_u16_sel::select#5 ]
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:27 [ div32u16u::return#0 sin16s_gen::step#0 div32u16u::return#1 ]
zp ZP_DWORD:27 [ div32u16u::return#2 sin16s_gen::step#0 div32u16u::return#0 ]
zp ZP_WORD:31 [ sin16s::x1#0 ]
reg byte a [ mul16u::$1 ]
reg byte a [ divr16u::$1 ]