https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117421
--- Comment #3 from Wojciech Mula <wojciech_mula at poczta dot onet.pl> --- It's worth noting, that Clang first synthesizes a 32-bit word from individual bytes, and then use a single comparison. ``` ext_is_gzip(std::basic_string_view<char, std::char_traits<char>>): li a2, 4 bne a0, a2, .LBB0_2 lbu a0, 1(a1) lbu a2, 0(a1) lbu a3, 2(a1) lb a1, 3(a1) slli a0, a0, 8 or a0, a0, a2 slli a3, a3, 16 slli a1, a1, 24 or a1, a1, a3 or a0, a0, a1 lui a1, 460440 addiw a1, a1, -1433 xor a0, a0, a1 seqz a0, a0 ret .LBB0_2: li a0, 0 ret ```