Hello, Code example: #include <stdio.h> char * a(int e) { char * s; switch (e) { case 0: s = "0"; break; case 1: s = "1"; break; case 2: s = "2"; break; default: s = "def"; break; } return s; } GCC 8.1: a: mov eax, OFFSET FLAT:.LC0 cmp edi, 2 ja .L1 mov edi, edi <------ redundant? mov rax, QWORD PTR CSWTCH.0[0+rdi*8] .L1: ret