#include "test_params.h" inline __attribute__((always_inline)) void test_function(double * test_var, int long long num_reps_t){ __asm__ __volatile__ ( "movq %0, %%r8\n\t\t" "Loop2_%=:\n\t\t" "movq %1, %%rax\n\t\t" "movq $689, %%rdi\n\t\t" "Loop1_%=:\n\t\t" "vmovapd 0(%%rax), %%ymm0\n\t\t" "vmovapd 32(%%rax), %%ymm1\n\t\t" "vmovapd 64(%%rax), %%ymm2\n\t\t" "vmovapd 96(%%rax), %%ymm3\n\t\t" "vmovapd 128(%%rax), %%ymm4\n\t\t" "vmovapd 160(%%rax), %%ymm5\n\t\t" "vmovapd 192(%%rax), %%ymm6\n\t\t" "vmovapd 224(%%rax), %%ymm7\n\t\t" "vmovapd 256(%%rax), %%ymm8\n\t\t" "vmovapd 288(%%rax), %%ymm9\n\t\t" "vmovapd 320(%%rax), %%ymm10\n\t\t" "vmovapd 352(%%rax), %%ymm11\n\t\t" "vmovapd 384(%%rax), %%ymm12\n\t\t" "vmovapd 416(%%rax), %%ymm13\n\t\t" "vmovapd 448(%%rax), %%ymm14\n\t\t" "vmovapd 480(%%rax), %%ymm15\n\t\t" "vmovapd 512(%%rax), %%ymm0\n\t\t" "vmovapd 544(%%rax), %%ymm1\n\t\t" "vmovapd 576(%%rax), %%ymm2\n\t\t" "vmovapd 608(%%rax), %%ymm3\n\t\t" "vmovapd 640(%%rax), %%ymm4\n\t\t" "vmovapd 672(%%rax), %%ymm5\n\t\t" "vmovapd 704(%%rax), %%ymm6\n\t\t" "vmovapd 736(%%rax), %%ymm7\n\t\t" "vmovapd 768(%%rax), %%ymm8\n\t\t" "vmovapd 800(%%rax), %%ymm9\n\t\t" "vmovapd 832(%%rax), %%ymm10\n\t\t" "vmovapd 864(%%rax), %%ymm11\n\t\t" "vmovapd 896(%%rax), %%ymm12\n\t\t" "vmovapd 928(%%rax), %%ymm13\n\t\t" "vmovapd 960(%%rax), %%ymm14\n\t\t" "vmovapd 992(%%rax), %%ymm15\n\t\t" "vmovapd 1024(%%rax), %%ymm0\n\t\t" "vmovapd 1056(%%rax), %%ymm1\n\t\t" "vmovapd 1088(%%rax), %%ymm2\n\t\t" "vmovapd 1120(%%rax), %%ymm3\n\t\t" "vmovapd 1152(%%rax), %%ymm4\n\t\t" "vmovapd 1184(%%rax), %%ymm5\n\t\t" "vmovapd 1216(%%rax), %%ymm6\n\t\t" "vmovapd 1248(%%rax), %%ymm7\n\t\t" "vmovapd 1280(%%rax), %%ymm8\n\t\t" "vmovapd 1312(%%rax), %%ymm9\n\t\t" "vmovapd 1344(%%rax), %%ymm10\n\t\t" "vmovapd 1376(%%rax), %%ymm11\n\t\t" "vmovapd 1408(%%rax), %%ymm12\n\t\t" "vmovapd 1440(%%rax), %%ymm13\n\t\t" "vmovapd 1472(%%rax), %%ymm14\n\t\t" "vmovapd 1504(%%rax), %%ymm15\n\t\t" "vmovapd 1536(%%rax), %%ymm0\n\t\t" "vmovapd 1568(%%rax), %%ymm1\n\t\t" "vmovapd 1600(%%rax), %%ymm2\n\t\t" "vmovapd 1632(%%rax), %%ymm3\n\t\t" "vmovapd 1664(%%rax), %%ymm4\n\t\t" "vmovapd 1696(%%rax), %%ymm5\n\t\t" "vmovapd 1728(%%rax), %%ymm6\n\t\t" "vmovapd 1760(%%rax), %%ymm7\n\t\t" "vmovapd 1792(%%rax), %%ymm8\n\t\t" "vmovapd 1824(%%rax), %%ymm9\n\t\t" "vmovapd 1856(%%rax), %%ymm10\n\t\t" "vmovapd 1888(%%rax), %%ymm11\n\t\t" "vmovapd 1920(%%rax), %%ymm12\n\t\t" "vmovapd 1952(%%rax), %%ymm13\n\t\t" "vmovapd 1984(%%rax), %%ymm14\n\t\t" "vmovapd 2016(%%rax), %%ymm15\n\t\t" "vmovapd 2048(%%rax), %%ymm0\n\t\t" "vmovapd 2080(%%rax), %%ymm1\n\t\t" "vmovapd 2112(%%rax), %%ymm2\n\t\t" "vmovapd 2144(%%rax), %%ymm3\n\t\t" "vmovapd 2176(%%rax), %%ymm4\n\t\t" "vmovapd 2208(%%rax), %%ymm5\n\t\t" "vmovapd 2240(%%rax), %%ymm6\n\t\t" "vmovapd 2272(%%rax), %%ymm7\n\t\t" "vmovapd 2304(%%rax), %%ymm8\n\t\t" "vmovapd 2336(%%rax), %%ymm9\n\t\t" "vmovapd 2368(%%rax), %%ymm10\n\t\t" "vmovapd 2400(%%rax), %%ymm11\n\t\t" "vmovapd 2432(%%rax), %%ymm12\n\t\t" "vmovapd 2464(%%rax), %%ymm13\n\t\t" "vmovapd 2496(%%rax), %%ymm14\n\t\t" "vmovapd 2528(%%rax), %%ymm15\n\t\t" "vmovapd 2560(%%rax), %%ymm0\n\t\t" "vmovapd 2592(%%rax), %%ymm1\n\t\t" "vmovapd 2624(%%rax), %%ymm2\n\t\t" "vmovapd 2656(%%rax), %%ymm3\n\t\t" "vmovapd 2688(%%rax), %%ymm4\n\t\t" "vmovapd 2720(%%rax), %%ymm5\n\t\t" "vmovapd 2752(%%rax), %%ymm6\n\t\t" "vmovapd 2784(%%rax), %%ymm7\n\t\t" "vmovapd 2816(%%rax), %%ymm8\n\t\t" "vmovapd 2848(%%rax), %%ymm9\n\t\t" "vmovapd 2880(%%rax), %%ymm10\n\t\t" "vmovapd 2912(%%rax), %%ymm11\n\t\t" "vmovapd 2944(%%rax), %%ymm12\n\t\t" "vmovapd 2976(%%rax), %%ymm13\n\t\t" "vmovapd 3008(%%rax), %%ymm14\n\t\t" "vmovapd 3040(%%rax), %%ymm15\n\t\t" "vmovapd 3072(%%rax), %%ymm0\n\t\t" "vmovapd 3104(%%rax), %%ymm1\n\t\t" "vmovapd 3136(%%rax), %%ymm2\n\t\t" "vmovapd 3168(%%rax), %%ymm3\n\t\t" "vmovapd 3200(%%rax), %%ymm4\n\t\t" "vmovapd 3232(%%rax), %%ymm5\n\t\t" "vmovapd 3264(%%rax), %%ymm6\n\t\t" "vmovapd 3296(%%rax), %%ymm7\n\t\t" "vmovapd 3328(%%rax), %%ymm8\n\t\t" "vmovapd 3360(%%rax), %%ymm9\n\t\t" "vmovapd 3392(%%rax), %%ymm10\n\t\t" "vmovapd 3424(%%rax), %%ymm11\n\t\t" "vmovapd 3456(%%rax), %%ymm12\n\t\t" "vmovapd 3488(%%rax), %%ymm13\n\t\t" "vmovapd 3520(%%rax), %%ymm14\n\t\t" "vmovapd 3552(%%rax), %%ymm15\n\t\t" "vmovapd 3584(%%rax), %%ymm0\n\t\t" "vmovapd 3616(%%rax), %%ymm1\n\t\t" "vmovapd 3648(%%rax), %%ymm2\n\t\t" "vmovapd 3680(%%rax), %%ymm3\n\t\t" "vmovapd 3712(%%rax), %%ymm4\n\t\t" "vmovapd 3744(%%rax), %%ymm5\n\t\t" "vmovapd 3776(%%rax), %%ymm6\n\t\t" "vmovapd 3808(%%rax), %%ymm7\n\t\t" "vmovapd 3840(%%rax), %%ymm8\n\t\t" "vmovapd 3872(%%rax), %%ymm9\n\t\t" "vmovapd 3904(%%rax), %%ymm10\n\t\t" "vmovapd 3936(%%rax), %%ymm11\n\t\t" "vmovapd 3968(%%rax), %%ymm12\n\t\t" "vmovapd 4000(%%rax), %%ymm13\n\t\t" "vmovapd 4032(%%rax), %%ymm14\n\t\t" "vmovapd 4064(%%rax), %%ymm15\n\t\t" "vmovapd 4096(%%rax), %%ymm0\n\t\t" "vmovapd 4128(%%rax), %%ymm1\n\t\t" "vmovapd 4160(%%rax), %%ymm2\n\t\t" "vmovapd 4192(%%rax), %%ymm3\n\t\t" "vmovapd 4224(%%rax), %%ymm4\n\t\t" "vmovapd 4256(%%rax), %%ymm5\n\t\t" "vmovapd 4288(%%rax), %%ymm6\n\t\t" "vmovapd 4320(%%rax), %%ymm7\n\t\t" "vmovapd 4352(%%rax), %%ymm8\n\t\t" "vmovapd 4384(%%rax), %%ymm9\n\t\t" "vmovapd 4416(%%rax), %%ymm10\n\t\t" "vmovapd 4448(%%rax), %%ymm11\n\t\t" "vmovapd 4480(%%rax), %%ymm12\n\t\t" "vmovapd 4512(%%rax), %%ymm13\n\t\t" "vmovapd 4544(%%rax), %%ymm14\n\t\t" "vmovapd 4576(%%rax), %%ymm15\n\t\t" "vmovapd 4608(%%rax), %%ymm0\n\t\t" "vmovapd 4640(%%rax), %%ymm1\n\t\t" "vmovapd 4672(%%rax), %%ymm2\n\t\t" "vmovapd 4704(%%rax), %%ymm3\n\t\t" "vmovapd 4736(%%rax), %%ymm4\n\t\t" "vmovapd 4768(%%rax), %%ymm5\n\t\t" "vmovapd 4800(%%rax), %%ymm6\n\t\t" "vmovapd 4832(%%rax), %%ymm7\n\t\t" "vmovapd 4864(%%rax), %%ymm8\n\t\t" "vmovapd 4896(%%rax), %%ymm9\n\t\t" "vmovapd 4928(%%rax), %%ymm10\n\t\t" "vmovapd 4960(%%rax), %%ymm11\n\t\t" "vmovapd 4992(%%rax), %%ymm12\n\t\t" "vmovapd 5024(%%rax), %%ymm13\n\t\t" "vmovapd 5056(%%rax), %%ymm14\n\t\t" "vmovapd 5088(%%rax), %%ymm15\n\t\t" "vmovapd 5120(%%rax), %%ymm0\n\t\t" "vmovapd 5152(%%rax), %%ymm1\n\t\t" "vmovapd 5184(%%rax), %%ymm2\n\t\t" "vmovapd 5216(%%rax), %%ymm3\n\t\t" "vmovapd 5248(%%rax), %%ymm4\n\t\t" "vmovapd 5280(%%rax), %%ymm5\n\t\t" "vmovapd 5312(%%rax), %%ymm6\n\t\t" "vmovapd 5344(%%rax), %%ymm7\n\t\t" "vmovapd 5376(%%rax), %%ymm8\n\t\t" "vmovapd 5408(%%rax), %%ymm9\n\t\t" "vmovapd 5440(%%rax), %%ymm10\n\t\t" "vmovapd 5472(%%rax), %%ymm11\n\t\t" "vmovapd 5504(%%rax), %%ymm12\n\t\t" "vmovapd 5536(%%rax), %%ymm13\n\t\t" "vmovapd 5568(%%rax), %%ymm14\n\t\t" "vmovapd 5600(%%rax), %%ymm15\n\t\t" "vmovapd 5632(%%rax), %%ymm0\n\t\t" "vmovapd 5664(%%rax), %%ymm1\n\t\t" "vmovapd 5696(%%rax), %%ymm2\n\t\t" "vmovapd 5728(%%rax), %%ymm3\n\t\t" "vmovapd 5760(%%rax), %%ymm4\n\t\t" "vmovapd 5792(%%rax), %%ymm5\n\t\t" "vmovapd 5824(%%rax), %%ymm6\n\t\t" "vmovapd 5856(%%rax), %%ymm7\n\t\t" "vmovapd 5888(%%rax), %%ymm8\n\t\t" "vmovapd 5920(%%rax), %%ymm9\n\t\t" "vmovapd 5952(%%rax), %%ymm10\n\t\t" "vmovapd 5984(%%rax), %%ymm11\n\t\t" "vmovapd 6016(%%rax), %%ymm12\n\t\t" "vmovapd 6048(%%rax), %%ymm13\n\t\t" "vmovapd 6080(%%rax), %%ymm14\n\t\t" "vmovapd 6112(%%rax), %%ymm15\n\t\t" "vmovapd 6144(%%rax), %%ymm0\n\t\t" "vmovapd 6176(%%rax), %%ymm1\n\t\t" "vmovapd 6208(%%rax), %%ymm2\n\t\t" "vmovapd 6240(%%rax), %%ymm3\n\t\t" "vmovapd 6272(%%rax), %%ymm4\n\t\t" "vmovapd 6304(%%rax), %%ymm5\n\t\t" "vmovapd 6336(%%rax), %%ymm6\n\t\t" "vmovapd 6368(%%rax), %%ymm7\n\t\t" "vmovapd 6400(%%rax), %%ymm8\n\t\t" "vmovapd 6432(%%rax), %%ymm9\n\t\t" "vmovapd 6464(%%rax), %%ymm10\n\t\t" "vmovapd 6496(%%rax), %%ymm11\n\t\t" "vmovapd 6528(%%rax), %%ymm12\n\t\t" "vmovapd 6560(%%rax), %%ymm13\n\t\t" "vmovapd 6592(%%rax), %%ymm14\n\t\t" "vmovapd 6624(%%rax), %%ymm15\n\t\t" "vmovapd 6656(%%rax), %%ymm0\n\t\t" "vmovapd 6688(%%rax), %%ymm1\n\t\t" "vmovapd 6720(%%rax), %%ymm2\n\t\t" "vmovapd 6752(%%rax), %%ymm3\n\t\t" "vmovapd 6784(%%rax), %%ymm4\n\t\t" "vmovapd 6816(%%rax), %%ymm5\n\t\t" "vmovapd 6848(%%rax), %%ymm6\n\t\t" "vmovapd 6880(%%rax), %%ymm7\n\t\t" "vmovapd 6912(%%rax), %%ymm8\n\t\t" "vmovapd 6944(%%rax), %%ymm9\n\t\t" "vmovapd 6976(%%rax), %%ymm10\n\t\t" "vmovapd 7008(%%rax), %%ymm11\n\t\t" "vmovapd 7040(%%rax), %%ymm12\n\t\t" "vmovapd 7072(%%rax), %%ymm13\n\t\t" "vmovapd 7104(%%rax), %%ymm14\n\t\t" "vmovapd 7136(%%rax), %%ymm15\n\t\t" "vmovapd 7168(%%rax), %%ymm0\n\t\t" "vmovapd 7200(%%rax), %%ymm1\n\t\t" "vmovapd 7232(%%rax), %%ymm2\n\t\t" "vmovapd 7264(%%rax), %%ymm3\n\t\t" "vmovapd 7296(%%rax), %%ymm4\n\t\t" "vmovapd 7328(%%rax), %%ymm5\n\t\t" "vmovapd 7360(%%rax), %%ymm6\n\t\t" "vmovapd 7392(%%rax), %%ymm7\n\t\t" "vmovapd 7424(%%rax), %%ymm8\n\t\t" "vmovapd 7456(%%rax), %%ymm9\n\t\t" "vmovapd 7488(%%rax), %%ymm10\n\t\t" "vmovapd 7520(%%rax), %%ymm11\n\t\t" "vmovapd 7552(%%rax), %%ymm12\n\t\t" "vmovapd 7584(%%rax), %%ymm13\n\t\t" "vmovapd 7616(%%rax), %%ymm14\n\t\t" "vmovapd 7648(%%rax), %%ymm15\n\t\t" "vmovapd 7680(%%rax), %%ymm0\n\t\t" "vmovapd 7712(%%rax), %%ymm1\n\t\t" "vmovapd 7744(%%rax), %%ymm2\n\t\t" "vmovapd 7776(%%rax), %%ymm3\n\t\t" "vmovapd 7808(%%rax), %%ymm4\n\t\t" "vmovapd 7840(%%rax), %%ymm5\n\t\t" "vmovapd 7872(%%rax), %%ymm6\n\t\t" "vmovapd 7904(%%rax), %%ymm7\n\t\t" "vmovapd 7936(%%rax), %%ymm8\n\t\t" "vmovapd 7968(%%rax), %%ymm9\n\t\t" "vmovapd 8000(%%rax), %%ymm10\n\t\t" "vmovapd 8032(%%rax), %%ymm11\n\t\t" "vmovapd 8064(%%rax), %%ymm12\n\t\t" "vmovapd 8096(%%rax), %%ymm13\n\t\t" "vmovapd 8128(%%rax), %%ymm14\n\t\t" "vmovapd 8160(%%rax), %%ymm15\n\t\t" "addq $8192, %%rax\n\t\t" "subq $1, %%rdi\n\t\t" "jnz Loop1_%=\n\t\t" "vmovapd 0(%%rax), %%ymm0\n\t\t" "vmovapd 32(%%rax), %%ymm1\n\t\t" "vmovapd 64(%%rax), %%ymm2\n\t\t" "vmovapd 96(%%rax), %%ymm3\n\t\t" "vmovapd 128(%%rax), %%ymm4\n\t\t" "vmovapd 160(%%rax), %%ymm5\n\t\t" "vmovapd 192(%%rax), %%ymm6\n\t\t" "vmovapd 224(%%rax), %%ymm7\n\t\t" "vmovapd 256(%%rax), %%ymm8\n\t\t" "vmovapd 288(%%rax), %%ymm9\n\t\t" "vmovapd 320(%%rax), %%ymm10\n\t\t" "vmovapd 352(%%rax), %%ymm11\n\t\t" "vmovapd 384(%%rax), %%ymm12\n\t\t" "vmovapd 416(%%rax), %%ymm13\n\t\t" "vmovapd 448(%%rax), %%ymm14\n\t\t" "vmovapd 480(%%rax), %%ymm15\n\t\t" "vmovapd 512(%%rax), %%ymm0\n\t\t" "vmovapd 544(%%rax), %%ymm1\n\t\t" "vmovapd 576(%%rax), %%ymm2\n\t\t" "vmovapd 608(%%rax), %%ymm3\n\t\t" "vmovapd 640(%%rax), %%ymm4\n\t\t" "vmovapd 672(%%rax), %%ymm5\n\t\t" "vmovapd 704(%%rax), %%ymm6\n\t\t" "vmovapd 736(%%rax), %%ymm7\n\t\t" "vmovapd 768(%%rax), %%ymm8\n\t\t" "vmovapd 800(%%rax), %%ymm9\n\t\t" "subq $1, %%r8\n\t\t" "jnz Loop2_%=\n\t\t" : :"r"(num_reps_t),"r" (test_var) :"%rax","%rdi","%r8" ); }