https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110569
Bug ID: 110569 Summary: [14 Regression] Different results among -O0, -O1 and -Os Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: jwzeng at nuaa dot edu.cn Target Milestone: --- Compiler explorer: https://godbolt.org/z/5qvhEnaoo $ cat bug.c int printf(const char *format, ...); short a = 1; unsigned int b[1][2][16][4]; signed char d[1][2][16][4]; unsigned int res; #define min(a, b) ((a) < (b) ? (a) : (b)) int main() { for (int i = 0; i < 16; ++i) for (int j = 2; j < 4; ++j) { d[0][1][i][j] = (signed char)-47; } for (signed char i = 0; i < 16; i += 4) for (signed char j = 2; j < 10; j += 4) res = min(1, a ? (unsigned short)d[0][1][i][2] : b[0][1][i][2 + 1]); printf("%d\n", res); } $ gcc-tk -O0 bug.c 1 $ gcc-tk -O1 bug.c 65489 $ gcc-tk -Os bug.c -47 $ $ gcc-tk -v Using built-in specs. COLLECT_GCC=/home/compilers/gcc/gcc-trunk/bin/gcc COLLECT_LTO_WRAPPER=/home/compilers/gcc/gcc-trunk/bin/../libexec/gcc/x86_64-pc-linux-gnu/14.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-trunk-source/gcc/configure --enable-languages=c,c++,fortran --enable-checking=release --enable-valgrind-annotations --disable-werror --disable-libstdcxx-pch --enable-libgomp --enable-lto --enable-gold --with-plugin-ld=gold --prefix=/usr/local/gcc-trunk Thread model: posix Supported LTO compression algorithms: zlib gcc version 14.0.0 20230703 (experimental) [master r14-2244-g1ebf37ece3] (GCC)