Disassembly of 60 bytes:
0: 55 pushq %rbp
1: 48 89 e5 movq %rsp, %rbp
4: 48 83 ec 50 subq $0x50, %rsp
8: 4c 8d 54 24 14 leaq 0x14(%rsp), %r10
d: 4d 31 db xorq %r11, %r11
10: 4d 89 1a movq %r11, (%r10)
13: 4c 8d 5c 24 1c leaq 0x1c(%rsp), %r11
18: 48 31 f6 xorq %rsi, %rsi
1b: 49 89 33 movq %rsi, (%r11)
1e: 48 8d 74 24 24 leaq 0x24(%rsp), %rsi
23: 48 31 ff xorq %rdi, %rdi
26: 48 89 3e movq %rdi, (%rsi)
29: 48 8d 7c 24 17 leaq 0x17(%rsp), %rdi
2e: 66 0f 70 07 ee pshufd $0xee, (%rdi), %xmm0
33: 48 83 c4 50 addq $0x50, %rsp
37: 48 89 ec movq %rbp, %rsp
3a: 5d popq %rbp
3b: c3 retq
👋 Hey,
Me and @alexcrichton were discussing this via Zulip. The
stack_loadgets translated into aload.f64x2 notrap aligned v34, and that's why we do the load sinking in the backend.Is
stack_loadrequired to be sufficiently aligned? Reading the docs, they don't mention anything. So it might just be a case of lets update the docs and the fuzzer..clifTest CaseSteps to Reproduce
clif-util test ./the-above.clifExpected Results
The test to pass
Actual Results
This passes on AArch64 and S390x.
Versions and Environment
Cranelift version or commit: main
Operating system: Linux
Architecture: x64
Extra Info
Generated assembly: