Message ID | mptfs65uzvw.fsf@arm.com |
---|---|
State | New |
Headers | show |
Series | aarch64: Fix vector-to-vector vec_extract | expand |
diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md index f1687d92eb2..d9539410147 100644 --- a/gcc/config/aarch64/aarch64-simd.md +++ b/gcc/config/aarch64/aarch64-simd.md @@ -8755,8 +8755,8 @@ (define_expand "vec_extract<mode><Vhalf>" "TARGET_SIMD" { int start = INTVAL (operands[2]); - if (start != 0 && start != <nunits> / 2) - FAIL; + gcc_assert (start == 0 || start == 1); + start *= <nunits> / 2; rtx sel = aarch64_gen_stepped_int_parallel (<nunits> / 2, start, 1); emit_insn (gen_aarch64_get_half<mode> (operands[0], operands[1], sel)); DONE;