[
V{
T{ ##load-integer f 0 10 }
- T{ ##replace-imm f 10 D 0 }
+ T{ ##replace-imm f 10 D: 0 }
}
] [
V{
T{ ##load-integer f 0 10 }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
} value-number-bb
] unit-test
[
V{
T{ ##load-reference f 0 f }
- T{ ##replace-imm f f D 0 }
+ T{ ##replace-imm f f D: 0 }
}
] [
V{
T{ ##load-reference f 0 f }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
} value-number-bb
] unit-test
] when
[
V{
T{ ##load-reference f 0 + }
- T{ ##replace-imm f + D 0 }
+ T{ ##replace-imm f + D: 0 }
}
] [
V{
T{ ##load-reference f 0 + }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
} value-number-bb
] unit-test
] when
[
V{
T{ ##load-integer f 0 10,000,000,000 }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
] [
V{
T{ ##load-integer f 0 10,000,000,000 }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
} value-number-bb
] unit-test
[
V{
T{ ##load-integer f 0 0x7fffffff }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
] [
V{
T{ ##load-integer f 0 0x7fffffff }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
} value-number-bb
] unit-test
] when
! Double compare elimination
{
V{
- T{ ##peek f 1 D 1 }
- T{ ##peek f 2 D 2 }
+ T{ ##peek f 1 D: 1 }
+ T{ ##peek f 2 D: 2 }
T{ ##compare f 4 2 1 cc= }
T{ ##copy f 6 4 any-rep }
- T{ ##replace f 4 D 0 }
+ T{ ##replace f 4 D: 0 }
}
} [
V{
- T{ ##peek f 1 D 1 }
- T{ ##peek f 2 D 2 }
+ T{ ##peek f 1 D: 1 }
+ T{ ##peek f 2 D: 2 }
T{ ##compare f 4 2 1 cc= }
T{ ##compare-imm f 6 4 f cc/= }
- T{ ##replace f 6 D 0 }
+ T{ ##replace f 6 D: 0 }
} value-number-bb trim-temps
] unit-test
{
V{
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 1 D: 1 }
T{ ##compare-imm f 2 1 16 cc= }
T{ ##copy f 3 2 any-rep }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
}
} [
V{
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 1 D: 1 }
T{ ##compare-imm f 2 1 16 cc= }
T{ ##compare-imm f 3 2 f cc/= }
- T{ ##replace f 3 D 0 }
+ T{ ##replace f 3 D: 0 }
} value-number-bb trim-temps
] unit-test
{
V{
- T{ ##peek f 1 D 1 }
- T{ ##peek f 2 D 2 }
+ T{ ##peek f 1 D: 1 }
+ T{ ##peek f 2 D: 2 }
T{ ##compare-integer f 4 2 1 cc> }
T{ ##copy f 6 4 any-rep }
- T{ ##replace f 4 D 0 }
+ T{ ##replace f 4 D: 0 }
}
} [
V{
- T{ ##peek f 1 D 1 }
- T{ ##peek f 2 D 2 }
+ T{ ##peek f 1 D: 1 }
+ T{ ##peek f 2 D: 2 }
T{ ##compare-integer f 4 2 1 cc> }
T{ ##compare-imm f 6 4 f cc/= }
- T{ ##replace f 6 D 0 }
+ T{ ##replace f 6 D: 0 }
} value-number-bb trim-temps
] unit-test
{
V{
- T{ ##peek f 1 D 1 }
- T{ ##peek f 2 D 2 }
+ T{ ##peek f 1 D: 1 }
+ T{ ##peek f 2 D: 2 }
T{ ##compare-integer f 4 2 1 cc<= }
T{ ##compare-integer f 6 2 1 cc/<= }
- T{ ##replace f 6 D 0 }
+ T{ ##replace f 6 D: 0 }
}
} [
V{
- T{ ##peek f 1 D 1 }
- T{ ##peek f 2 D 2 }
+ T{ ##peek f 1 D: 1 }
+ T{ ##peek f 2 D: 2 }
T{ ##compare-integer f 4 2 1 cc<= }
T{ ##compare-imm f 6 4 f cc= }
- T{ ##replace f 6 D 0 }
+ T{ ##replace f 6 D: 0 }
} value-number-bb trim-temps
] unit-test
{
V{
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 1 D: 1 }
T{ ##compare-integer-imm f 2 1 100 cc<= }
T{ ##compare-integer-imm f 3 1 100 cc/<= }
- T{ ##replace f 3 D 0 }
+ T{ ##replace f 3 D: 0 }
}
} [
V{
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 1 D: 1 }
T{ ##compare-integer-imm f 2 1 100 cc<= }
T{ ##compare-imm f 3 2 f cc= }
- T{ ##replace f 3 D 0 }
+ T{ ##replace f 3 D: 0 }
} value-number-bb trim-temps
] unit-test
{
V{
- T{ ##peek f 8 D 0 }
- T{ ##peek f 9 D -1 }
+ T{ ##peek f 8 D: 0 }
+ T{ ##peek f 9 D: -1 }
T{ ##compare-float-unordered f 12 8 9 cc< }
T{ ##compare-float-unordered f 14 8 9 cc/< }
- T{ ##replace f 14 D 0 }
+ T{ ##replace f 14 D: 0 }
}
} [
V{
- T{ ##peek f 8 D 0 }
- T{ ##peek f 9 D -1 }
+ T{ ##peek f 8 D: 0 }
+ T{ ##peek f 9 D: -1 }
T{ ##compare-float-unordered f 12 8 9 cc< }
T{ ##compare-imm f 14 12 f cc= }
- T{ ##replace f 14 D 0 }
+ T{ ##replace f 14 D: 0 }
} value-number-bb trim-temps
] unit-test
{
V{
- T{ ##peek f 29 D -1 }
- T{ ##peek f 30 D -2 }
+ T{ ##peek f 29 D: -1 }
+ T{ ##peek f 30 D: -2 }
T{ ##compare f 33 29 30 cc= }
T{ ##compare-branch f 29 30 cc= }
}
} [
V{
- T{ ##peek f 29 D -1 }
- T{ ##peek f 30 D -2 }
+ T{ ##peek f 29 D: -1 }
+ T{ ##peek f 30 D: -2 }
T{ ##compare f 33 29 30 cc= }
T{ ##compare-imm-branch f 33 f cc/= }
} value-number-bb trim-temps
{
V{
- T{ ##peek f 29 D -1 }
- T{ ##peek f 30 D -2 }
+ T{ ##peek f 29 D: -1 }
+ T{ ##peek f 30 D: -2 }
T{ ##compare-integer f 33 29 30 cc<= }
T{ ##compare-integer-branch f 29 30 cc<= }
}
} [
V{
- T{ ##peek f 29 D -1 }
- T{ ##peek f 30 D -2 }
+ T{ ##peek f 29 D: -1 }
+ T{ ##peek f 30 D: -2 }
T{ ##compare-integer f 33 29 30 cc<= }
T{ ##compare-imm-branch f 33 f cc/= }
} value-number-bb trim-temps
{
V{
- T{ ##peek f 29 D -1 }
- T{ ##peek f 30 D -2 }
+ T{ ##peek f 29 D: -1 }
+ T{ ##peek f 30 D: -2 }
T{ ##test f 33 29 30 cc= }
T{ ##test-branch f 29 30 cc= }
}
} [
V{
- T{ ##peek f 29 D -1 }
- T{ ##peek f 30 D -2 }
+ T{ ##peek f 29 D: -1 }
+ T{ ##peek f 30 D: -2 }
T{ ##test f 33 29 30 cc= }
T{ ##compare-imm-branch f 33 f cc/= }
} value-number-bb trim-temps
{
V{
- T{ ##peek f 29 D -1 }
+ T{ ##peek f 29 D: -1 }
T{ ##test-imm f 33 29 30 cc= }
T{ ##test-imm-branch f 29 30 cc= }
}
} [
V{
- T{ ##peek f 29 D -1 }
+ T{ ##peek f 29 D: -1 }
T{ ##test-imm f 33 29 30 cc= }
T{ ##compare-imm-branch f 33 f cc/= }
} value-number-bb trim-temps
{
V{
- T{ ##peek f 1 D -1 }
+ T{ ##peek f 1 D: -1 }
T{ ##test-vector f 2 1 f float-4-rep vcc-any }
T{ ##test-vector-branch f 1 f float-4-rep vcc-any }
}
} [
V{
- T{ ##peek f 1 D -1 }
+ T{ ##peek f 1 D: -1 }
T{ ##test-vector f 2 1 f float-4-rep vcc-any }
T{ ##compare-imm-branch f 2 f cc/= }
} value-number-bb trim-temps
cpu x86.32? [
[
V{
- T{ ##peek f 1 D 0 }
+ T{ ##peek f 1 D: 0 }
T{ ##compare-imm f 2 1 + cc= }
T{ ##compare-imm-branch f 1 + cc= }
}
] [
V{
- T{ ##peek f 1 D 0 }
+ T{ ##peek f 1 D: 0 }
T{ ##compare-imm f 2 1 + cc= }
T{ ##compare-imm-branch f 2 f cc/= }
} value-number-bb trim-temps
! Immediate operand fusion
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##add-imm f 2 0 100 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##add f 2 0 1 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##add-imm f 2 0 100 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##add f 2 1 0 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##add-imm f 2 0 -100 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##sub f 2 0 1 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##sub f 1 0 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##mul-imm f 2 0 100 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##mul f 2 0 1 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##mul-imm f 2 0 100 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##mul f 2 1 0 }
} value-number-bb
{
V{
- T{ ##peek f 1 D 0 }
+ T{ ##peek f 1 D: 0 }
T{ ##shl-imm f 2 1 3 }
}
} [
V{
- T{ ##peek f 1 D 0 }
+ T{ ##peek f 1 D: 0 }
T{ ##mul-imm f 2 1 8 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 -1 }
T{ ##neg f 2 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 -1 }
T{ ##mul f 2 0 1 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 -1 }
T{ ##neg f 2 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 -1 }
T{ ##mul f 2 1 0 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 0 }
T{ ##neg f 2 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 0 }
T{ ##sub f 2 1 0 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 0 }
T{ ##neg f 2 0 }
T{ ##copy f 3 0 any-rep }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 0 }
T{ ##sub f 2 1 0 }
T{ ##sub f 3 1 2 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##neg f 1 0 }
T{ ##copy f 2 0 any-rep }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##neg f 1 0 }
T{ ##neg f 2 1 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##not f 1 0 }
T{ ##copy f 2 0 any-rep }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##not f 1 0 }
T{ ##not f 2 1 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##and-imm f 2 0 100 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##and f 2 0 1 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##and-imm f 2 0 100 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##and f 2 1 0 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##or-imm f 2 0 100 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##or f 2 0 1 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##or-imm f 2 0 100 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##or f 2 1 0 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##xor-imm f 2 0 100 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##xor f 2 0 1 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##xor-imm f 2 0 100 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##xor f 2 1 0 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##compare-imm f 2 0 100 cc= }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##compare f 2 0 1 cc= }
} value-number-bb trim-temps
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##compare-integer-imm f 2 0 100 cc<= }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##compare-integer f 2 0 1 cc<= }
} value-number-bb trim-temps
cpu x86.32? [
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 + }
T{ ##compare-imm f 2 0 + cc= }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 + }
T{ ##compare f 2 0 1 cc= }
} value-number-bb trim-temps
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 + }
T{ ##compare-imm-branch f 0 + cc= }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 + }
T{ ##compare-branch f 0 1 cc= }
} value-number-bb trim-temps
cpu x86.32? [
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 3.5 }
T{ ##compare f 2 0 1 cc= }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 3.5 }
T{ ##compare f 2 0 1 cc= }
} value-number-bb trim-temps
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 3.5 }
T{ ##compare-branch f 0 1 cc= }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 3.5 }
T{ ##compare-branch f 0 1 cc= }
} value-number-bb trim-temps
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##compare-integer-imm f 2 0 100 cc>= }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##compare-integer f 2 1 0 cc<= }
} value-number-bb trim-temps
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##compare-integer-imm-branch f 0 100 cc<= }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##compare-integer-branch f 0 1 cc<= }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##compare-integer-imm-branch f 0 100 cc>= }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##compare-integer-branch f 1 0 cc<= }
} value-number-bb trim-temps
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 f }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer f 1 0 0 cc< }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##copy f 1 0 any-rep }
T{ ##load-reference f 2 f }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##copy f 1 0 any-rep }
T{ ##compare-integer f 2 0 1 cc< }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 t }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer f 1 0 0 cc<= }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 f }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer f 1 0 0 cc> }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 t }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer f 1 0 0 cc>= }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 f }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer f 1 0 0 cc/= }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 t }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer f 1 0 0 cc= }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 t }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare f 1 0 0 cc= }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 f }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare f 1 0 0 cc/= }
} value-number-bb
] unit-test
! Rewriting a ##test of an ##and into a ##test
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##and f 2 0 1 }
T{ ##test f 3 0 1 cc= }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##and f 2 0 1 }
T{ ##test f 3 2 2 cc= }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##and-imm f 2 0 12 }
T{ ##test-imm f 3 0 12 cc= }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##and-imm f 2 0 12 }
T{ ##test f 3 2 2 cc= }
} value-number-bb
! Rewriting ##test into ##test-imm
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 10 }
T{ ##test-imm f 2 0 10 cc= }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 10 }
T{ ##test f 2 0 1 cc= }
} value-number-bb trim-temps
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 10 }
T{ ##test-imm f 2 0 10 cc= }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 10 }
T{ ##test f 2 1 0 cc= }
} value-number-bb trim-temps
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 10 }
T{ ##test-imm-branch f 0 10 cc= }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 10 }
T{ ##test-branch f 0 1 cc= }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 10 }
T{ ##test-imm-branch f 0 10 cc= }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 10 }
T{ ##test-branch f 1 0 cc= }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 10 }
T{ ##test-imm-branch f 0 10 cc= }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 10 }
T{ ##test-branch f 1 0 cc= }
} value-number-bb
cpu x86.64? [
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100000000000 }
T{ ##test f 2 1 0 cc= }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100000000000 }
T{ ##test f 2 1 0 cc= }
} value-number-bb
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100000000000 }
T{ ##test-branch f 1 0 cc= }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100000000000 }
T{ ##test-branch f 1 0 cc= }
} value-number-bb
cpu x86? [
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##test f 1 0 0 cc= }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-imm f 1 0 0 cc= }
} value-number-bb
] unit-test
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##test f 1 0 0 cc/= }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-imm f 1 0 0 cc/= }
} value-number-bb
] unit-test
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-imm f 1 0 0 cc<= }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-imm f 1 0 0 cc<= }
} value-number-bb
] unit-test
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##test-branch f 0 0 cc= }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-imm-branch f 0 0 cc= }
} value-number-bb
] unit-test
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##test-branch f 0 0 cc/= }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-imm-branch f 0 0 cc/= }
} value-number-bb
] unit-test
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-imm-branch f 0 0 cc<= }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-imm-branch f 0 0 cc<= }
} value-number-bb
] unit-test
! Reassociation
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##add-imm f 2 0 100 }
T{ ##load-integer f 3 50 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##add f 2 0 1 }
T{ ##load-integer f 3 50 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##add-imm f 2 0 100 }
T{ ##load-integer f 3 50 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##add f 2 1 0 }
T{ ##load-integer f 3 50 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##add-imm f 2 0 100 }
T{ ##load-integer f 3 50 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##add f 2 0 1 }
T{ ##load-integer f 3 50 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##add-imm f 2 0 -100 }
T{ ##load-integer f 3 50 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##sub f 2 0 1 }
T{ ##load-integer f 3 50 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##mul-imm f 2 0 100 }
T{ ##load-integer f 3 50 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##mul f 2 0 1 }
T{ ##load-integer f 3 50 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##mul-imm f 2 0 100 }
T{ ##load-integer f 3 50 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##mul f 2 1 0 }
T{ ##load-integer f 3 50 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##and-imm f 2 0 100 }
T{ ##load-integer f 3 50 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##and f 2 0 1 }
T{ ##load-integer f 3 50 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##and-imm f 2 0 100 }
T{ ##load-integer f 3 50 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##and f 2 1 0 }
T{ ##load-integer f 3 50 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##or-imm f 2 0 100 }
T{ ##load-integer f 3 50 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##or f 2 0 1 }
T{ ##load-integer f 3 50 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##or-imm f 2 0 100 }
T{ ##load-integer f 3 50 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##or f 2 1 0 }
T{ ##load-integer f 3 50 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##xor-imm f 2 0 100 }
T{ ##load-integer f 3 50 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##xor f 2 0 1 }
T{ ##load-integer f 3 50 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##xor-imm f 2 0 100 }
T{ ##load-integer f 3 50 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 100 }
T{ ##xor f 2 1 0 }
T{ ##load-integer f 3 50 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##shl-imm f 1 0 10 }
T{ ##shl-imm f 2 0 21 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##shl-imm f 1 0 10 }
T{ ##shl-imm f 2 1 11 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##shl-imm f 1 0 10 }
T{ ##shl-imm f 2 1 $[ cell-bits 1 - ] }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##shl-imm f 1 0 10 }
T{ ##shl-imm f 2 1 $[ cell-bits 1 - ] }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##sar-imm f 1 0 10 }
T{ ##sar-imm f 2 0 21 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##sar-imm f 1 0 10 }
T{ ##sar-imm f 2 1 11 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##sar-imm f 1 0 10 }
T{ ##sar-imm f 2 1 $[ cell-bits 1 - ] }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##sar-imm f 1 0 10 }
T{ ##sar-imm f 2 1 $[ cell-bits 1 - ] }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##shr-imm f 1 0 10 }
T{ ##shr-imm f 2 0 21 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##shr-imm f 1 0 10 }
T{ ##shr-imm f 2 1 11 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##shr-imm f 1 0 10 }
T{ ##shr-imm f 2 1 $[ cell-bits 1 - ] }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##shr-imm f 1 0 10 }
T{ ##shr-imm f 2 1 $[ cell-bits 1 - ] }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##shr-imm f 1 0 10 }
T{ ##sar-imm f 2 1 11 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##shr-imm f 1 0 10 }
T{ ##sar-imm f 2 1 11 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##add-imm f 1 0 10 }
T{ ##shl-imm f 3 0 2 }
T{ ##add-imm f 2 3 40 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##add-imm f 1 0 10 }
T{ ##shl-imm f 2 1 2 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##add-imm f 1 0 10 }
T{ ##mul-imm f 4 0 3 }
T{ ##add-imm f 2 4 30 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##add-imm f 1 0 10 }
T{ ##mul-imm f 2 1 3 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##add-imm f 1 0 -10 }
T{ ##shl-imm f 5 0 2 }
T{ ##add-imm f 2 5 -40 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##sub-imm f 1 0 10 }
T{ ##shl-imm f 2 1 2 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##add-imm f 1 0 -10 }
T{ ##mul-imm f 6 0 3 }
T{ ##add-imm f 2 6 -30 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##sub-imm f 1 0 10 }
T{ ##mul-imm f 2 1 3 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
! Simplification
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##copy f 3 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##add-imm f 3 0 0 }
- T{ ##replace f 3 D 0 }
+ T{ ##replace f 3 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##copy f 3 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##or-imm f 3 0 0 }
- T{ ##replace f 3 D 0 }
+ T{ ##replace f 3 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##copy f 3 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##xor-imm f 3 0 0 }
- T{ ##replace f 3 D 0 }
+ T{ ##replace f 3 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##and-imm f 1 0 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##copy f 1 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##and-imm f 1 0 -1 }
- T{ ##replace f 1 D 0 }
+ T{ ##replace f 1 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##copy f 1 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##and f 1 0 0 }
- T{ ##replace f 1 D 0 }
+ T{ ##replace f 1 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##copy f 1 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##or-imm f 1 0 0 }
- T{ ##replace f 1 D 0 }
+ T{ ##replace f 1 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 -1 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##or-imm f 1 0 -1 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##copy f 1 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##or f 1 0 0 }
- T{ ##replace f 1 D 0 }
+ T{ ##replace f 1 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##copy f 1 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##xor-imm f 1 0 0 }
- T{ ##replace f 1 D 0 }
+ T{ ##replace f 1 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##not f 1 0 }
- T{ ##replace f 1 D 0 }
+ T{ ##replace f 1 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##xor-imm f 1 0 -1 }
- T{ ##replace f 1 D 0 }
+ T{ ##replace f 1 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##xor f 1 0 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##copy f 2 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##mul-imm f 2 0 1 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##copy f 2 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##shl-imm f 2 0 0 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##copy f 2 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##shr-imm f 2 0 0 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##copy f 2 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##sar-imm f 2 0 0 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
! Constant folding
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 1 }
T{ ##load-integer f 2 3 }
T{ ##load-integer f 3 4 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 1 }
T{ ##load-integer f 2 3 }
T{ ##add f 3 1 2 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 1 }
T{ ##load-integer f 2 3 }
T{ ##load-integer f 3 -2 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 1 }
T{ ##load-integer f 2 3 }
T{ ##sub f 3 1 2 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 2 }
T{ ##load-integer f 2 3 }
T{ ##load-integer f 3 6 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 2 }
T{ ##load-integer f 2 3 }
T{ ##mul f 3 1 2 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 2 }
T{ ##load-integer f 2 1 }
T{ ##load-integer f 3 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 2 }
T{ ##load-integer f 2 1 }
T{ ##and f 3 1 2 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 2 }
T{ ##load-integer f 2 1 }
T{ ##load-integer f 3 3 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 2 }
T{ ##load-integer f 2 1 }
T{ ##or f 3 1 2 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 2 }
T{ ##load-integer f 2 3 }
T{ ##load-integer f 3 1 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 2 }
T{ ##load-integer f 2 3 }
T{ ##xor f 3 1 2 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 1 }
T{ ##load-integer f 3 8 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 1 }
T{ ##shl-imm f 3 1 3 }
} value-number-bb
cell 8 = [
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 -1 }
T{ ##load-integer f 3 0xffffffffffff }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 -1 }
T{ ##shr-imm f 3 1 16 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 -8 }
T{ ##load-integer f 3 -4 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 -8 }
T{ ##sar-imm f 3 1 1 }
} value-number-bb
cell 8 = [
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 65536 }
T{ ##load-integer f 2 140737488355328 }
T{ ##add f 3 0 2 }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 65536 }
T{ ##shl-imm f 2 1 31 }
T{ ##add f 3 0 2 }
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 2 140737488355328 }
T{ ##add f 3 0 2 }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 2 140737488355328 }
T{ ##add f 3 0 2 }
} value-number-bb
cpu ppc? [
[
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 2 2147483647 }
T{ ##add-imm f 3 0 2147483647 }
T{ ##add-imm f 4 3 2147483647 }
}
] [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 2 2147483647 }
T{ ##add f 3 0 2 }
T{ ##add f 4 3 2 }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 1 }
T{ ##load-integer f 2 -1 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 1 }
T{ ##neg f 2 1 }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 1 }
T{ ##load-integer f 2 -2 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 1 1 }
T{ ##not f 2 1 }
} value-number-bb
! Alien boxing and unboxing
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##box-alien f 1 0 }
T{ ##copy f 2 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##box-alien f 1 0 }
T{ ##unbox-alien f 2 1 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##box-alien f 1 0 }
T{ ##copy f 2 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##box-alien f 1 0 }
T{ ##unbox-any-c-ptr f 2 1 }
- T{ ##replace f 2 D 0 }
+ T{ ##replace f 2 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 2 0 }
T{ ##copy f 1 0 any-rep }
- T{ ##replace f 0 D 0 }
+ T{ ##replace f 0 D: 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 2 0 }
T{ ##box-displaced-alien f 1 2 0 c-ptr }
- T{ ##replace f 1 D 0 }
+ T{ ##replace f 1 D: 0 }
} value-number-bb
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 2 16 }
T{ ##box-displaced-alien f 1 2 0 c-ptr }
T{ ##unbox-any-c-ptr f 4 0 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 2 16 }
T{ ##box-displaced-alien f 1 2 0 c-ptr }
T{ ##unbox-any-c-ptr f 3 1 }
{
V{
- T{ ##peek f 1 D 0 }
+ T{ ##peek f 1 D: 0 }
T{ ##box-alien f 0 1 }
T{ ##load-integer f 2 16 }
T{ ##box-displaced-alien f 3 2 0 c-ptr }
}
} [
V{
- T{ ##peek f 1 D 0 }
+ T{ ##peek f 1 D: 0 }
T{ ##box-alien f 0 1 }
T{ ##load-integer f 2 16 }
T{ ##box-displaced-alien f 3 2 0 c-ptr }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 2 0 }
T{ ##copy f 3 0 any-rep }
- T{ ##replace f 0 D 1 }
+ T{ ##replace f 0 D: 1 }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-integer f 2 0 }
T{ ##box-displaced-alien f 3 2 0 c-ptr }
- T{ ##replace f 3 D 1 }
+ T{ ##replace f 3 D: 1 }
} value-number-bb
] unit-test
! Various SIMD simplifications
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##vector>scalar f 1 0 float-4-rep }
T{ ##copy f 2 0 any-rep }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##vector>scalar f 1 0 float-4-rep }
T{ ##scalar>vector f 2 1 float-4-rep }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##shuffle-vector-imm f 1 0 { 1 2 3 0 } float-4-rep }
T{ ##shuffle-vector-imm f 2 0 { 0 2 3 1 } float-4-rep }
}
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##shuffle-vector-imm f 1 0 { 1 2 3 0 } float-4-rep }
T{ ##shuffle-vector-imm f 2 1 { 3 1 2 0 } float-4-rep }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##fill-vector f 3 float-4-rep }
T{ ##xor-vector f 4 0 3 float-4-rep }
T{ ##andn-vector f 5 0 1 float-4-rep }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##fill-vector f 3 float-4-rep }
T{ ##xor-vector f 4 0 3 float-4-rep }
T{ ##and-vector f 5 4 1 float-4-rep }
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##not-vector f 4 0 float-4-rep }
T{ ##andn-vector f 5 0 1 float-4-rep }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##not-vector f 4 0 float-4-rep }
T{ ##and-vector f 5 4 1 float-4-rep }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##fill-vector f 3 float-4-rep }
T{ ##xor-vector f 4 0 3 float-4-rep }
T{ ##andn-vector f 5 0 1 float-4-rep }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##fill-vector f 3 float-4-rep }
T{ ##xor-vector f 4 0 3 float-4-rep }
T{ ##and-vector f 5 1 4 float-4-rep }
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##not-vector f 4 0 float-4-rep }
T{ ##andn-vector f 5 0 1 float-4-rep }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##not-vector f 4 0 float-4-rep }
T{ ##and-vector f 5 1 4 float-4-rep }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##fill-vector f 3 float-4-rep }
T{ ##xor-vector f 4 0 3 float-4-rep }
T{ ##and-vector f 5 0 1 float-4-rep }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##fill-vector f 3 float-4-rep }
T{ ##xor-vector f 4 0 3 float-4-rep }
T{ ##andn-vector f 5 4 1 float-4-rep }
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##not-vector f 4 0 float-4-rep }
T{ ##and-vector f 5 0 1 float-4-rep }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##not-vector f 4 0 float-4-rep }
T{ ##andn-vector f 5 4 1 float-4-rep }
} value-number-bb
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
- T{ ##peek f 2 D 2 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
+ T{ ##peek f 2 D: 2 }
T{ ##fill-vector f 3 float-4-rep }
T{ ##xor-vector f 4 0 3 float-4-rep }
T{ ##andn-vector f 5 0 1 float-4-rep }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
- T{ ##peek f 2 D 2 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
+ T{ ##peek f 2 D: 2 }
T{ ##fill-vector f 3 float-4-rep }
T{ ##xor-vector f 4 0 3 float-4-rep }
T{ ##and-vector f 5 4 1 float-4-rep }
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
- T{ ##peek f 2 D 2 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
+ T{ ##peek f 2 D: 2 }
T{ ##not-vector f 4 0 float-4-rep }
T{ ##andn-vector f 5 0 1 float-4-rep }
T{ ##and-vector f 6 0 2 float-4-rep }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
- T{ ##peek f 2 D 2 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
+ T{ ##peek f 2 D: 2 }
T{ ##not-vector f 4 0 float-4-rep }
T{ ##and-vector f 5 4 1 float-4-rep }
T{ ##andn-vector f 6 4 2 float-4-rep }
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##branch }
}
1
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-branch f 0 0 cc< }
} test-branch-folding
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##branch }
}
0
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-branch f 0 0 cc<= }
} test-branch-folding
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##branch }
}
1
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-branch f 0 0 cc> }
} test-branch-folding
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##branch }
}
0
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-branch f 0 0 cc>= }
} test-branch-folding
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##branch }
}
0
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-branch f 0 0 cc= }
} test-branch-folding
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##branch }
}
1
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-branch f 0 0 cc/= }
} test-branch-folding
] unit-test
{
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##load-reference f 1 t }
T{ ##branch }
}
0
} [
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare f 1 0 0 cc<= }
T{ ##compare-imm-branch f 1 f cc/= }
} test-branch-folding
V{ T{ ##branch } } 0 test-bb
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##compare-integer-branch f 0 0 cc< }
} 1 test-bb
V{
T{ ##phi f 3 H{ { 2 1 } { 3 2 } } }
- T{ ##replace f 3 D 0 }
+ T{ ##replace f 3 D: 0 }
T{ ##return }
} 4 test-bb
{ 2 } [ 4 get instructions>> length ] unit-test
V{
- T{ ##peek f 0 D 0 }
+ T{ ##peek f 0 D: 0 }
T{ ##branch }
} 0 test-bb
V{
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 1 D: 1 }
T{ ##compare-integer-branch f 1 1 cc< }
} 1 test-bb
} 3 test-bb
V{
- T{ ##replace f 3 D 0 }
+ T{ ##replace f 3 D: 0 }
T{ ##return }
} 4 test-bb
V{ T{ ##prologue } T{ ##branch } } 0 test-bb
V{
- T{ ##peek { dst 15 } { loc D 0 } }
+ T{ ##peek { dst 15 } { loc D: 0 } }
T{ ##copy { dst 16 } { src 15 } { rep any-rep } }
T{ ##copy { dst 17 } { src 15 } { rep any-rep } }
T{ ##copy { dst 18 } { src 15 } { rep any-rep } }
} 2 test-bb
V{
- T{ ##replace { src 25 } { loc D 0 } }
+ T{ ##replace { src 25 } { loc D: 0 } }
T{ ##epilogue }
T{ ##return }
} 3 test-bb
} 4 test-bb
V{
- T{ ##replace { src 28 } { loc D 0 } }
+ T{ ##replace { src 28 } { loc D: 0 } }
T{ ##epilogue }
T{ ##return }
} 5 test-bb
cpu x86? [
[
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##add-imm f 2 1 2 }
T{ ##slot f 3 0 1 $[ cell log2 ] $[ 7 2 cells - ] }
}
] [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##add-imm f 2 1 2 }
T{ ##slot f 3 0 2 $[ cell log2 ] 7 }
} value-number-bb
! Base offset fusion on ##load/store-memory-imm
{
V{
- T{ ##peek f 1 D 0 }
+ T{ ##peek f 1 D: 0 }
T{ ##tagged>integer f 2 1 }
T{ ##add-imm f 3 2 10 }
T{ ##load-memory-imm f 4 2 10 int-rep c:uchar }
}
} [
V{
- T{ ##peek f 1 D 0 }
+ T{ ##peek f 1 D: 0 }
T{ ##tagged>integer f 2 1 }
T{ ##add-imm f 3 2 10 }
T{ ##load-memory-imm f 4 3 0 int-rep c:uchar }
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##add-imm f 4 3 10 }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##add-imm f 4 3 10 }
! Displacement fusion on ##load/store-memory-imm
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##add f 4 2 3 }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##add f 4 2 3 }
{
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##add f 4 2 3 }
}
} [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##add f 4 2 3 }
cpu x86?
[
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##add-imm f 4 2 31337 }
]
[
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##add-imm f 4 2 31337 }
] ?
[
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##add-imm f 4 2 31337 }
cpu x86?
[
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##add-imm f 4 3 31337 }
]
[
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##add-imm f 4 3 31337 }
] ?
[
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##add-imm f 4 3 31337 }
! ##load/store-memory with non-zero scale
{ } [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##add-imm f 4 3 10 }
cpu x86?
[
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##shl-imm f 4 3 2 }
]
[
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##shl-imm f 4 3 2 }
] ?
[
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##shl-imm f 4 3 2 }
! Don't do scale fusion if there's already a scale
[ ] [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##shl-imm f 4 3 2 }
! Don't do scale fusion if the scale factor is out of range
[ ] [
V{
- T{ ##peek f 0 D 0 }
- T{ ##peek f 1 D 1 }
+ T{ ##peek f 0 D: 0 }
+ T{ ##peek f 1 D: 1 }
T{ ##tagged>integer f 2 0 }
T{ ##tagged>integer f 3 1 }
T{ ##shl-imm f 4 3 4 }
V{ T{ ##branch } } 0 test-bb
V{
- T{ ##inc { loc D -1 } }
- T{ ##peek { dst 1 } { loc D -1 } }
+ T{ ##inc { loc D: -1 } }
+ T{ ##peek { dst 1 } { loc D: -1 } }
T{ ##compare-imm-branch { src1 1 } { src2 f } { cc cc/= } }
} 1 test-bb
V{
- T{ ##inc { loc D 1 } }
+ T{ ##inc { loc D: 1 } }
T{ ##load-integer { dst 2 } { val 100 } }
T{ ##branch }
} 2 test-bb
V{
- T{ ##inc { loc D 1 } }
+ T{ ##inc { loc D: 1 } }
T{ ##load-integer { dst 3 } { val 200 } }
T{ ##branch }
} 3 test-bb
V{ T{ ##prologue } T{ ##branch } } 0 test-bb
V{
- T{ ##inc f D 3 }
+ T{ ##inc f D: 3 }
T{ ##load-integer f 21 0 }
T{ ##load-integer f 22 100 }
T{ ##load-integer f 23 0 }
} 2 test-bb
V{
- T{ ##inc f D -2 }
- T{ ##replace f 29 D 0 }
+ T{ ##inc f D: -2 }
+ T{ ##replace f 29 D: 0 }
T{ ##branch }
} 4 test-bb