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