1 ; RUN: llc -verify-machineinstrs -mcpu=pwr7 < %s | FileCheck %s -check-prefix=PWR7
2 ; RUN: llc -verify-machineinstrs -mcpu=pwr8 < %s | FileCheck %s -check-prefix=PWR8
3 target datalayout = "E-m:e-i64:64-n32:64"
4 target triple = "powerpc64-unknown-linux-gnu"
6 ; Function Attrs: nounwind
7 define void @foo1(double* nocapture %x, double* nocapture readonly %y) #0 {
9 %0 = bitcast double* %x to i8*
10 %1 = bitcast double* %y to i8*
11 tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %0, i8* align 8 %1, i64 32, i1 false)
16 ; PWR7-DAG: li [[OFFSET:[0-9]+]], 16
17 ; PWR7-DAG: lxvd2x [[TMP0:[0-9]+]], 4, [[OFFSET]]
18 ; PWR7-DAG: stxvd2x [[TMP0]], 3, [[OFFSET]]
19 ; PWR7-DAG: lxvd2x [[TMP1:[0-9]+]], 0, 4
20 ; PWR7-DAG: stxvd2x [[TMP1]], 0, 3
29 ; Function Attrs: nounwind
30 declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i1) #0
32 ; Function Attrs: nounwind
33 define void @foo2(double* nocapture %x, double* nocapture readonly %y) #0 {
35 %0 = bitcast double* %x to i8*
36 %1 = bitcast double* %y to i8*
37 tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %0, i8* align 8 %1, i64 128, i1 false)
50 ; Function Attrs: nounwind
51 define void @bar1(double* nocapture %x) #0 {
53 %0 = bitcast double* %x to i8*
54 tail call void @llvm.memset.p0i8.i64(i8* align 8 %0, i8 0, i64 128, i1 false)
68 ; Function Attrs: nounwind
69 define void @bar2(double* nocapture %x) #0 {
71 %0 = bitcast double* %x to i8*
72 tail call void @llvm.memset.p0i8.i64(i8* align 32 %0, i8 0, i64 128, i1 false)
86 ; Function Attrs: nounwind
87 declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1) #0
89 attributes #0 = { nounwind }