1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86-64 -mattr=+avx512f,+avx512bw | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine void @f(<16 x float> %A, <16 x float> %AA, i8* %B, <8 x double> %C, <8 x double> %CC, <8 x i64> %E, <8 x i64> %EE, <16 x i32> %F, <16 x i32> %FF, <32 x i16> %G, <32 x i16> %GG, <64 x i8> %H, <64 x i8> %HH) { 4*9880d681SAndroid Build Coastguard Worker; CHECK: vmovntps %z 5*9880d681SAndroid Build Coastguard Worker %cast = bitcast i8* %B to <16 x float>* 6*9880d681SAndroid Build Coastguard Worker %A2 = fadd <16 x float> %A, %AA 7*9880d681SAndroid Build Coastguard Worker store <16 x float> %A2, <16 x float>* %cast, align 64, !nontemporal !0 8*9880d681SAndroid Build Coastguard Worker; CHECK: vmovntdq %z 9*9880d681SAndroid Build Coastguard Worker %cast1 = bitcast i8* %B to <8 x i64>* 10*9880d681SAndroid Build Coastguard Worker %E2 = add <8 x i64> %E, %EE 11*9880d681SAndroid Build Coastguard Worker store <8 x i64> %E2, <8 x i64>* %cast1, align 64, !nontemporal !0 12*9880d681SAndroid Build Coastguard Worker; CHECK: vmovntpd %z 13*9880d681SAndroid Build Coastguard Worker %cast2 = bitcast i8* %B to <8 x double>* 14*9880d681SAndroid Build Coastguard Worker %C2 = fadd <8 x double> %C, %CC 15*9880d681SAndroid Build Coastguard Worker store <8 x double> %C2, <8 x double>* %cast2, align 64, !nontemporal !0 16*9880d681SAndroid Build Coastguard Worker; CHECK: vmovntdq %z 17*9880d681SAndroid Build Coastguard Worker %cast3 = bitcast i8* %B to <16 x i32>* 18*9880d681SAndroid Build Coastguard Worker %F2 = add <16 x i32> %F, %FF 19*9880d681SAndroid Build Coastguard Worker store <16 x i32> %F2, <16 x i32>* %cast3, align 64, !nontemporal !0 20*9880d681SAndroid Build Coastguard Worker; CHECK: vmovntdq %z 21*9880d681SAndroid Build Coastguard Worker %cast4 = bitcast i8* %B to <32 x i16>* 22*9880d681SAndroid Build Coastguard Worker %G2 = add <32 x i16> %G, %GG 23*9880d681SAndroid Build Coastguard Worker store <32 x i16> %G2, <32 x i16>* %cast4, align 64, !nontemporal !0 24*9880d681SAndroid Build Coastguard Worker; CHECK: vmovntdq %z 25*9880d681SAndroid Build Coastguard Worker %cast5 = bitcast i8* %B to <64 x i8>* 26*9880d681SAndroid Build Coastguard Worker %H2 = add <64 x i8> %H, %HH 27*9880d681SAndroid Build Coastguard Worker store <64 x i8> %H2, <64 x i8>* %cast5, align 64, !nontemporal !0 28*9880d681SAndroid Build Coastguard Worker ret void 29*9880d681SAndroid Build Coastguard Worker} 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Worker!0 = !{i32 1} 32