mirror of
git://c9x.me/qbe.git
synced 2026-05-26 15:34:41 +00:00
31 lines
676 B
Plaintext
31 lines
676 B
Plaintext
export function w $f() {
|
|
@start
|
|
%x0 =w loadsb $a
|
|
# the extension must not be eliminated
|
|
# even though the load already extended
|
|
%x1 =l extsb %x0
|
|
%c =w ceql %x1, -1
|
|
ret %c
|
|
}
|
|
|
|
export function w $g(w %arg) {
|
|
@start
|
|
%a0 =w extuh %arg # 1
|
|
%a1 =w or 65536, %a0 # 65537
|
|
@loop
|
|
%a2 =w phi @loop %a2, @start %a1 # 65537
|
|
jnz %arg, @end, @loop
|
|
@end
|
|
%a3 =w shr %a2, 1 # 32768
|
|
%a4 =w or %a2, 1 # 65537
|
|
%a5 =w or %a3, %a4 # 98305
|
|
%ret =w extuh %a5 # 32769
|
|
ret %ret
|
|
}
|
|
|
|
# >>> driver
|
|
# char a = -1;
|
|
# extern int f(), g(int);
|
|
# int main() { return !(f() == 1 && g(1) == 32769); }
|
|
# <<<
|