xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/avx512vl-nontemporal.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s  -march=x86-64 -mtriple=x86_64-apple-darwin -mcpu=skx --show-mc-encoding | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine void @f256(<8 x float> %A, <8 x float> %AA, i8* %B, <4 x double> %C, <4 x double> %CC, i32 %D, <4 x i64> %E, <4 x i64> %EE) {
4*9880d681SAndroid Build Coastguard Worker; CHECK: vmovntps %ymm{{.*}} ## encoding: [0x62
5*9880d681SAndroid Build Coastguard Worker  %cast = bitcast i8* %B to <8 x float>*
6*9880d681SAndroid Build Coastguard Worker  %A2 = fadd <8 x float> %A, %AA
7*9880d681SAndroid Build Coastguard Worker  store <8 x float> %A2, <8 x float>* %cast, align 64, !nontemporal !0
8*9880d681SAndroid Build Coastguard Worker; CHECK: vmovntdq %ymm{{.*}} ## encoding: [0x62
9*9880d681SAndroid Build Coastguard Worker  %cast1 = bitcast i8* %B to <4 x i64>*
10*9880d681SAndroid Build Coastguard Worker  %E2 = add <4 x i64> %E, %EE
11*9880d681SAndroid Build Coastguard Worker  store <4 x i64> %E2, <4 x i64>* %cast1, align 64, !nontemporal !0
12*9880d681SAndroid Build Coastguard Worker; CHECK: vmovntpd %ymm{{.*}} ## encoding: [0x62
13*9880d681SAndroid Build Coastguard Worker  %cast2 = bitcast i8* %B to <4 x double>*
14*9880d681SAndroid Build Coastguard Worker  %C2 = fadd <4 x double> %C, %CC
15*9880d681SAndroid Build Coastguard Worker  store <4 x double> %C2, <4 x double>* %cast2, align 64, !nontemporal !0
16*9880d681SAndroid Build Coastguard Worker  ret void
17*9880d681SAndroid Build Coastguard Worker}
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Workerdefine void @f128(<4 x float> %A, <4 x float> %AA, i8* %B, <2 x double> %C, <2 x double> %CC, i32 %D, <2 x i64> %E, <2 x i64> %EE) {
20*9880d681SAndroid Build Coastguard Worker; CHECK: vmovntps %xmm{{.*}} ## encoding: [0x62
21*9880d681SAndroid Build Coastguard Worker  %cast = bitcast i8* %B to <4 x float>*
22*9880d681SAndroid Build Coastguard Worker  %A2 = fadd <4 x float> %A, %AA
23*9880d681SAndroid Build Coastguard Worker  store <4 x float> %A2, <4 x float>* %cast, align 64, !nontemporal !0
24*9880d681SAndroid Build Coastguard Worker; CHECK: vmovntdq %xmm{{.*}} ## encoding: [0x62
25*9880d681SAndroid Build Coastguard Worker  %cast1 = bitcast i8* %B to <2 x i64>*
26*9880d681SAndroid Build Coastguard Worker  %E2 = add <2 x i64> %E, %EE
27*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %E2, <2 x i64>* %cast1, align 64, !nontemporal !0
28*9880d681SAndroid Build Coastguard Worker; CHECK: vmovntpd %xmm{{.*}} ## encoding: [0x62
29*9880d681SAndroid Build Coastguard Worker  %cast2 = bitcast i8* %B to <2 x double>*
30*9880d681SAndroid Build Coastguard Worker  %C2 = fadd <2 x double> %C, %CC
31*9880d681SAndroid Build Coastguard Worker  store <2 x double> %C2, <2 x double>* %cast2, align 64, !nontemporal !0
32*9880d681SAndroid Build Coastguard Worker  ret void
33*9880d681SAndroid Build Coastguard Worker}
34*9880d681SAndroid Build Coastguard Worker!0 = !{i32 1}
35