- if (isfloat(b) && fold_can_2(a, b))
- return fold_constgen_vector(fold, vec3_mulvf(fold_immvalue_vector(b), fold_immvalue_float(a)));
- else if (fold_can_2(a, b))
- return fold_constgen_float(fold, fold_immvalue_float(a) * fold_immvalue_float(b));
+ if (isvector(b)) {
+ if (fold_can_2(a, b))
+ return fold_constgen_vector(fold, vec3_mulvf(fold_immvalue_vector(b), fold_immvalue_float(a)));
+ } else {
+ if (fold_can_2(a, b))
+ return fold_constgen_float(fold, fold_immvalue_float(a) * fold_immvalue_float(b));
+ }