unsigned int __get_z31wk(unsigned int y) {
  switch (y % 400U) {
  default:
    break;
  case 0:
  case 5:
  case 6:
  case 10:
  case 11:
  case 16:
  case 17:
  case 21:
  case 22:
  case 23:
  case 27:
  case 28:
  case 33:
  case 34:
  case 38:
  case 39:
  case 44:
  case 45:
  case 49:
  case 50:
  case 51:
  case 55:
  case 56:
  case 61:
  case 62:
  case 66:
  case 67:
  case 72:
  case 73:
  case 77:
  case 78:
  case 79:
  case 83:
  case 84:
  case 89:
  case 90:
  case 94:
  case 95:
  case 100:
  case 101:
  case 102:
  case 106:
  case 107:
  case 112:
  case 113:
  case 117:
  case 118:
  case 119:
  case 123:
  case 124:
  case 129:
  case 130:
  case 134:
  case 135:
  case 140:
  case 141:
  case 145:
  case 146:
  case 147:
  case 151:
  case 152:
  case 157:
  case 158:
  case 162:
  case 163:
  case 168:
  case 169:
  case 173:
  case 174:
  case 175:
  case 179:
  case 180:
  case 185:
  case 186:
  case 190:
  case 191:
  case 196:
  case 197:
  case 202:
  case 203:
  case 208:
  case 209:
  case 213:
  case 214:
  case 215:
  case 219:
  case 220:
  case 225:
  case 226:
  case 230:
  case 231:
  case 236:
  case 237:
  case 241:
  case 242:
  case 243:
  case 247:
  case 248:
  case 253:
  case 254:
  case 258:
  case 259:
  case 264:
  case 265:
  case 269:
  case 270:
  case 271:
  case 275:
  case 276:
  case 281:
  case 282:
  case 286:
  case 287:
  case 292:
  case 293:
  case 297:
  case 298:
  case 299:
  case 304:
  case 305:
  case 309:
  case 310:
  case 311:
  case 315:
  case 316:
  case 321:
  case 322:
  case 326:
  case 327:
  case 332:
  case 333:
  case 337:
  case 338:
  case 339:
  case 343:
  case 344:
  case 349:
  case 350:
  case 354:
  case 355:
  case 360:
  case 361:
  case 365:
  case 366:
  case 367:
  case 371:
  case 372:
  case 377:
  case 378:
  case 382:
  case 383:
  case 388:
  case 389:
  case 393:
  case 394:
  case 395:
  case 399:
    return 52;
  }
  return 53;
}


x86 assembly (clang, -O0):
<__get_z31wk>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,%ecx
mov    %ecx,%eax
imul   $0x51eb851f,%rcx,%rcx
shr    $0x27,%rcx
imul   $0x190,%ecx,%ecx
sub    %ecx,%eax
mov    %eax,%ecx
mov    %rcx,-0x10(%rbp)
sub    $0x18f,%eax
ja     1146 <__get_z31wk+0x46>
mov    -0x10(%rbp),%rax
lea    0xec3(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
jmp    1157 <__get_z31wk+0x57>
movl   $0x34,-0x4(%rbp)
jmp    115e <__get_z31wk+0x5e>
movl   $0x35,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<__get_z31wk>:
mov    %edi,%eax
imul   $0x51eb851f,%rax,%rax
shr    $0x27,%rax
imul   $0x190,%eax,%eax
sub    %eax,%edi
cmp    $0x18f,%edi
ja     1133 <__get_z31wk+0x33>
mov    $0x34,%eax
lea    0xed7(%rip),%rcx
movslq (%rcx,%rdi,4),%rdx
add    %rcx,%rdx
jmp    *%rdx
ret
mov    $0x35,%eax
ret

LLVM IR (-O0):
define i32 @__get_z31wk(i32 %0) {
%2 = alloca i32
%3 = alloca i32
store i32 %0, i32* %3
%4 = load i32, i32* %3
%5 = urem i32 %4, 400
switch i32 %5, label %6 [
i32 0, label %7
i32 5, label %7
i32 6, label %7
i32 10, label %7
i32 11, label %7
i32 16, label %7
i32 17, label %7
i32 21, label %7
i32 22, label %7
i32 23, label %7
i32 27, label %7
i32 28, label %7
i32 33, label %7
i32 34, label %7
i32 38, label %7
i32 39, label %7
i32 44, label %7
i32 45, label %7
i32 49, label %7
i32 50, label %7
i32 51, label %7
i32 55, label %7
i32 56, label %7
i32 61, label %7
i32 62, label %7
i32 66, label %7
i32 67, label %7
i32 72, label %7
i32 73, label %7
i32 77, label %7
i32 78, label %7
i32 79, label %7
i32 83, label %7
i32 84, label %7
i32 89, label %7
i32 90, label %7
i32 94, label %7
i32 95, label %7
i32 100, label %7
i32 101, label %7
i32 102, label %7
i32 106, label %7
i32 107, label %7
i32 112, label %7
i32 113, label %7
i32 117, label %7
i32 118, label %7
i32 119, label %7
i32 123, label %7
i32 124, label %7
i32 129, label %7
i32 130, label %7
i32 134, label %7
i32 135, label %7
i32 140, label %7
i32 141, label %7
i32 145, label %7
i32 146, label %7
i32 147, label %7
i32 151, label %7
i32 152, label %7
i32 157, label %7
i32 158, label %7
i32 162, label %7
i32 163, label %7
i32 168, label %7
i32 169, label %7
i32 173, label %7
i32 174, label %7
i32 175, label %7
i32 179, label %7
i32 180, label %7
i32 185, label %7
i32 186, label %7
i32 190, label %7
i32 191, label %7
i32 196, label %7
i32 197, label %7
i32 202, label %7
i32 203, label %7
i32 208, label %7
i32 209, label %7
i32 213, label %7
i32 214, label %7
i32 215, label %7
i32 219, label %7
i32 220, label %7
i32 225, label %7
i32 226, label %7
i32 230, label %7
i32 231, label %7
i32 236, label %7
i32 237, label %7
i32 241, label %7
i32 242, label %7
i32 243, label %7
i32 247, label %7
i32 248, label %7
i32 253, label %7
i32 254, label %7
i32 258, label %7
i32 259, label %7
i32 264, label %7
i32 265, label %7
i32 269, label %7
i32 270, label %7
i32 271, label %7
i32 275, label %7
i32 276, label %7
i32 281, label %7
i32 282, label %7
i32 286, label %7
i32 287, label %7
i32 292, label %7
i32 293, label %7
i32 297, label %7
i32 298, label %7
i32 299, label %7
i32 304, label %7
i32 305, label %7
i32 309, label %7
i32 310, label %7
i32 311, label %7
i32 315, label %7
i32 316, label %7
i32 321, label %7
i32 322, label %7
i32 326, label %7
i32 327, label %7
i32 332, label %7
i32 333, label %7
i32 337, label %7
i32 338, label %7
i32 339, label %7
i32 343, label %7
i32 344, label %7
i32 349, label %7
i32 350, label %7
i32 354, label %7
i32 355, label %7
i32 360, label %7
i32 361, label %7
i32 365, label %7
i32 366, label %7
i32 367, label %7
i32 371, label %7
i32 372, label %7
i32 377, label %7
i32 378, label %7
i32 382, label %7
i32 383, label %7
i32 388, label %7
i32 389, label %7
i32 393, label %7
i32 394, label %7
i32 395, label %7
i32 399, label %7
]
6: ; preds = %1
br label %8
7: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1
store i32 52, i32* %2
br label %9
8: ; preds = %6
store i32 53, i32* %2
br label %9
9: ; preds = %8, %7
%10 = load i32, i32* %2
ret i32 %10
}

LLVM IR (-O2):
define i32 @__get_z31wk(i32 %0) {
%2 = urem i32 %0, 400
switch i32 %2, label %3 [
i32 0, label %4
i32 5, label %4
i32 6, label %4
i32 10, label %4
i32 11, label %4
i32 16, label %4
i32 17, label %4
i32 21, label %4
i32 22, label %4
i32 23, label %4
i32 27, label %4
i32 28, label %4
i32 33, label %4
i32 34, label %4
i32 38, label %4
i32 39, label %4
i32 44, label %4
i32 45, label %4
i32 49, label %4
i32 50, label %4
i32 51, label %4
i32 55, label %4
i32 56, label %4
i32 61, label %4
i32 62, label %4
i32 66, label %4
i32 67, label %4
i32 72, label %4
i32 73, label %4
i32 77, label %4
i32 78, label %4
i32 79, label %4
i32 83, label %4
i32 84, label %4
i32 89, label %4
i32 90, label %4
i32 94, label %4
i32 95, label %4
i32 100, label %4
i32 101, label %4
i32 102, label %4
i32 106, label %4
i32 107, label %4
i32 112, label %4
i32 113, label %4
i32 117, label %4
i32 118, label %4
i32 119, label %4
i32 123, label %4
i32 124, label %4
i32 129, label %4
i32 130, label %4
i32 134, label %4
i32 135, label %4
i32 140, label %4
i32 141, label %4
i32 145, label %4
i32 146, label %4
i32 147, label %4
i32 151, label %4
i32 152, label %4
i32 157, label %4
i32 158, label %4
i32 162, label %4
i32 163, label %4
i32 168, label %4
i32 169, label %4
i32 173, label %4
i32 174, label %4
i32 175, label %4
i32 179, label %4
i32 180, label %4
i32 185, label %4
i32 186, label %4
i32 190, label %4
i32 191, label %4
i32 196, label %4
i32 197, label %4
i32 202, label %4
i32 203, label %4
i32 208, label %4
i32 209, label %4
i32 213, label %4
i32 214, label %4
i32 215, label %4
i32 219, label %4
i32 220, label %4
i32 225, label %4
i32 226, label %4
i32 230, label %4
i32 231, label %4
i32 236, label %4
i32 237, label %4
i32 241, label %4
i32 242, label %4
i32 243, label %4
i32 247, label %4
i32 248, label %4
i32 253, label %4
i32 254, label %4
i32 258, label %4
i32 259, label %4
i32 264, label %4
i32 265, label %4
i32 269, label %4
i32 270, label %4
i32 271, label %4
i32 275, label %4
i32 276, label %4
i32 281, label %4
i32 282, label %4
i32 286, label %4
i32 287, label %4
i32 292, label %4
i32 293, label %4
i32 297, label %4
i32 298, label %4
i32 299, label %4
i32 304, label %4
i32 305, label %4
i32 309, label %4
i32 310, label %4
i32 311, label %4
i32 315, label %4
i32 316, label %4
i32 321, label %4
i32 322, label %4
i32 326, label %4
i32 327, label %4
i32 332, label %4
i32 333, label %4
i32 337, label %4
i32 338, label %4
i32 339, label %4
i32 343, label %4
i32 344, label %4
i32 349, label %4
i32 350, label %4
i32 354, label %4
i32 355, label %4
i32 360, label %4
i32 361, label %4
i32 365, label %4
i32 366, label %4
i32 367, label %4
i32 371, label %4
i32 372, label %4
i32 377, label %4
i32 378, label %4
i32 382, label %4
i32 383, label %4
i32 388, label %4
i32 389, label %4
i32 393, label %4
i32 394, label %4
i32 395, label %4
i32 399, label %4
]
3: ; preds = %1
br label %4
4: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %3
%5 = phi i32 [ 53, %3 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ], [ 52, %1 ]
ret i32 %5
}