1 #include <immintrin.h>
2 
3 #define PASTER2(x,y)		x##y
4 #define PASTER3(x,y,z)		_mm##x##_##y##_##z
5 #define TYPE(vec)		PASTER2 (__m, vec)
6 #define OP(vec, op, suffix)	PASTER3 (vec, op, suffix)
7 #define DUP(vec, suffix, val)	PASTER3 (vec, set1, suffix) (val)
8 
9 type
foo(type x,type y,SCALAR * f)10 foo (type x, type y, SCALAR *f)
11 {
12   return OP (vec, op, suffix) (x, DUP (vec, suffix, *f), y);
13 }
14