mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
* Added most x86 cryptographic instructions * Fixed popcnt test * Fixed asm_ops_x64_2.c3t test --------- Co-authored-by: Christoffer Lerno <christoffer@aegik.com>
31 lines
997 B
Plaintext
31 lines
997 B
Plaintext
// #target: macos-x64
|
|
module test;
|
|
|
|
fn void main(String[] args)
|
|
{
|
|
int foo;
|
|
asm
|
|
{
|
|
adcx $eax, $ecx;
|
|
adcx $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
|
|
|
|
"adcx %ecx, %eax\0Aadcx %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},~{rax},~{xmm1},~{flags},~{dirflag},~{fspr}"
|