// #target: macos-x64
module test;

fn void main(String[] args)
{
	int foo;
	asm
	{
		adcxl $eax, $ecx;
		adcxq $rax, $rcx;
		addpd $xmm1, $xmm2;
		addps $xmm1, $xmm2;
		addsd $xmm1, $xmm2;
		addss $xmm1, $xmm2;
		vaddpd $xmm1, $xmm2, $xmm3;
		vaddpd $ymm1, $ymm2, $ymm3;
		vaddpd $xmm1, $xmm2, [&foo];
		vaddps $xmm1, $xmm2, $xmm3;
		vaddps $ymm1, $ymm2, $ymm3;
		vaddps $xmm1, $xmm2, [&foo];
		vaddsd $xmm1, $xmm2, $xmm3;
		vaddsd $xmm1, $xmm2, [&foo];
		vaddss $xmm1, $xmm2, $xmm3;
		vaddss $xmm1, $xmm2, [&foo];
	}
}

/* #expect: test.ll

"adcxl %ecx, %eax\0Aadcxq %rcx, %rax\0Aaddpd %xmm2, %xmm1\0Aaddps %xmm2, %xmm1\0Aaddsd %xmm2, %xmm1\0Aaddss %xmm2, %xmm1\0Avaddpd %xmm3, %xmm2, %xmm1\0Avaddpd %ymm3, %ymm2, %ymm1\0Avaddpd $0, %xmm2, %xmm1\0Avaddps %xmm3, %xmm2, %xmm1\0Avaddps %ymm3, %ymm2, %ymm1\0Avaddps $0, %xmm2, %xmm1\0Avaddsd %xmm3, %xmm2, %xmm1\0Avaddsd $0, %xmm2, %xmm1\0Avaddss %xmm3, %xmm2, %xmm1\0Avaddss $0, %xmm2, %xmm1\0A", "*m,~{cc},~{rcx},~{xmm1},~{flags},~{dirflag},~{fspr}"
