https://llvm.org/bugs/show_bug.cgi?id=24086
Bug ID: 24086
Summary: ARM64 backend ignores non-temporal hints
Product: libraries
Version: trunk
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P
Component: Backend: AArch64
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Classification: Unclassified
> cat test.ll
define void @test_zero_v8f32(<8 x float>* %dst) {
store <8 x float> zeroinitializer, <8 x float>* %dst, align 16, !nontemporal
!1
ret void
}
!1 = !{i32 1}
> llc -mtriple=arm64-unknown-unknown < test.ll
.text
.file "<stdin>"
.globl test_zero_v8f32
.align 2
.type test_zero_v8f32,@function
test_zero_v8f32: // @test_zero_v8f32
.cfi_startproc
// BB#0:
movi v0.2d, #0000000000000000
stp q0, q0, [x0]
ret
.Lfunc_end0:
.size test_zero_v8f32, .Lfunc_end0-test_zero_v8f32
.cfi_endproc
.section ".note.GNU-stack","",@progbits
I expected to see STNP instruction here.
FWIW, x86 backend takes the hint into account:
> llc -mtriple=x86_64-unknown-unknown < test.ll
.text
.file "<stdin>"
.globl test_zero_v8f32
.align 16, 0x90
.type test_zero_v8f32,@function
test_zero_v8f32: # @test_zero_v8f32
.cfi_startproc
# BB#0:
xorps %xmm0, %xmm0
movntps %xmm0, 16(%rdi)
movntps %xmm0, (%rdi)
retq
.Lfunc_end0:
.size test_zero_v8f32, .Lfunc_end0-test_zero_v8f32
.cfi_endproc
.section ".note.GNU-stack","",@progbits
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs