external printf def check () c01: switch %rdi -> c02, c04, c06, c06 orelse c08; c02: %rdi <- copy "rdi = 0\n"; c03: jump c10; c04: %rdi <- copy "rdi = 1\n"; c05: jump c10; c06: %rdi <- copy "rdi = 2 or 3\n"; c07: jump c10; c08: %rdi <- copy "rdi <> 0, 1, 2, 3\n"; c09: jump c10; c10: %rax <- copy 0; c11: printf (); c12: ret; end globals (x) l00: %rdi <- copy 0; l01: check (); l02: %rdi <- copy 1; l03: check (); l04: %rdi <- copy 2; l05: check (); l06: %rdi <- copy 3; l07: check (); l08: %rdi <- copy 4; l09: check (); l10: %rdi <- copy 5; l11: check (); l12: %rdi <- copy 73; l13: check (); l14: %rdi <- copy 0; l15: exit; end