blob: bcd4b772c985eacf9d70c532f963d243bc1412d7 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-msse2 -mno-sse4.1 -O3 -fdump-tree-vect-details" } */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 5 "vect" } } */
#include<stdint.h>
void
vec_widen_smul8 (int16_t* __restrict v3, int8_t *v1, int8_t *v2, int order)
{
while (order--)
*v3++ = (int16_t) *v1++ * *v2++;
}
void
vec_widen_umul8(uint16_t* __restrict v3, uint8_t *v1, uint8_t *v2, int order)
{
while (order--)
*v3++ = (uint16_t) *v1++ * *v2++;
}
void
vec_widen_smul16(int32_t* __restrict v3, int16_t *v1, int16_t *v2, int order)
{
while (order--)
*v3++ = (int32_t) *v1++ * *v2++;
}
void
vec_widen_umul16(uint32_t* __restrict v3, uint16_t *v1, uint16_t *v2, int order)
{
while (order--)
*v3++ = (uint32_t) *v1++ * *v2++;
}
void
vec_widen_smul32(int64_t* __restrict v3, int32_t *v1, int32_t *v2, int order)
{
while (order--)
*v3++ = (int64_t) *v1++ * *v2++;
}
void
vec_widen_umul32(uint64_t* __restrict v3, uint32_t *v1, uint32_t *v2, int order)
{
while (order--)
*v3++ = (uint64_t) *v1++ * *v2++;
}