https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112366

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
(gdb) p code
$1 = BIT_XOR_EXPR

OK, that's somewhat unexpected ;)  Reduced testcase:

int sm3_compress___trans_tmp_1, sm3_compress_x_6;
extern int sm3_compress_x[];
void sm3_compress()
{
  for (int i = 0; i < 12; ++i)
    {
      int tt2 = sm3_compress_x[4] ^ sm3_compress_x[5] ^ sm3_compress_x_6;
      sm3_compress___trans_tmp_1 = sm3_compress_x[5];
      sm3_compress_x_6 = sm3_compress___trans_tmp_1;
      sm3_compress_x[5] = sm3_compress_x[4];
      long rd;
      __asm__("" : "=r"(rd) : ""(tt2));
      sm3_compress_x[4] = rd;
    }
}

Reply via email to