This patch to the Go frontend handles the case of f().x when the
function f returns a zero-sized type. In that case the GCC interface
will have changed f to return void, as the GCC middle-end does not
have complete support for zero-sized types. This patch handles the
case of void when in a struct
This patch resolves PR target/106231 by providing insns that recognize
(zero_extend:DI (ctz:SI ...)) and (sign_extend:DI (ctz:SI ...)). The
result of ctz:SI is always between 0 and 32 (or undefined), so
sign_extension is the same as zero_extension, and the result is already
extended in the destin
This AVX512 specific patch to sse.md is split out from an earlier patch:
https://gcc.gnu.org/pipermail/gcc-patches/2022-June/596199.html
The new splitters proposed in that patch interfere with AVX512's
kunpckdq instruction which is defined as identical RTL,
DW:DI = (HI:SI<<32)|zero_extend(LO:SI).
This middle-end patch resolves PR c/106264 which is a spurious warning
regression caused by the tree-level expansion of modf, frexp and remquo
producing "expression has no-effect" when the built-in function's result
is ignored. When these built-ins were first expanded at tree-level,
fold_builtin_
This patch fixes (what I believe is) a latent bug in i386.md's
x86_64_const_vector_operand define_predicate. According to the
documentation, when a predicate is called with rtx operand OP and
machine_mode operand MODE, we can't shouldn't assume that the
MODE is (or has been checked to be) GET_MOD
On Fri, Jul 15, 2022 at 4:17 PM Takayuki 'January June' Suwa
wrote:
>
> This patch enhances the effectiveness of the previously posted one:
> "xtensa: Optimize bitwise AND operation with some specific forms of
> constants".
>
> /* example */
> extern void foo(int);
> void test(int a)
On Fri, Jul 15, 2022 at 4:17 PM Takayuki 'January June' Suwa
wrote:
>
> This patch allows the constant synthesis to choose shorter instruction
> if possible.
>
> /* example */
> int test(void) {
> return 128 << 8;
> }
>
> ;; before
> test:
> movia2, 0x100
>