aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorXi Ruoyao <xry111@xry111.site>2024-06-15 18:29:43 +0800
committerXi Ruoyao <xry111@xry111.site>2024-06-27 14:47:57 +0800
commit94aade062a4ab689abc4c3422c1b901ab0733c19 (patch)
tree103c78d8f1d4a9c111dc95c35050e20e29a318fb /gcc/tree-vectorizer.h
parentb8153b5417bed02f47354a14ad36100785dfdc47 (diff)
downloadgcc-94aade062a4ab689abc4c3422c1b901ab0733c19.zip
gcc-94aade062a4ab689abc4c3422c1b901ab0733c19.tar.gz
gcc-94aade062a4ab689abc4c3422c1b901ab0733c19.tar.bz2
LoongArch: Tweak IOR rtx_cost for bstrins
Consider c &= 0xfff; a &= ~0xfff; b &= ~0xfff; a |= c; b |= c; This can be done with 2 bstrins instructions. But we need to recognize it in loongarch_rtx_costs or the compiler will not propagate "c & 0xfff" forward. gcc/ChangeLog: * config/loongarch/loongarch.cc: (loongarch_use_bstrins_for_ior_with_mask): Split the main logic into ... (loongarch_use_bstrins_for_ior_with_mask_1): ... here. (loongarch_rtx_costs): Special case for IOR those can be implemented with bstrins. gcc/testsuite/ChangeLog; * gcc.target/loongarch/bstrins-3.c: New test.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions