diff --git a/src/backend/cgelem.c b/src/backend/cgelem.c index 3a381c9a973b..d187f668bb6d 100644 --- a/src/backend/cgelem.c +++ b/src/backend/cgelem.c @@ -3511,7 +3511,7 @@ STATIC elem * eleq(elem *e, goal_t goal) e1->Eoper == OPvar && e2->Eoper == OPvar && goal == GOALnone && - !tyfloating(e1->Ety) + !tyfloating(e1->Ety) && !tyvector(e1->Ety) ) { tym_t ty = (REGSIZE == 8) ? TYllong : TYint; diff --git a/test/compilable/test17215.d b/test/compilable/test17215.d new file mode 100644 index 000000000000..047039e7681d --- /dev/null +++ b/test/compilable/test17215.d @@ -0,0 +1,9 @@ +// REQUIRED_ARGS: -O +version (X86_64): +alias vec = __vector(int[4]); + +vec binop(vec a) +{ + vec b = a; + return b; +}