Merging r259740:
[oota-llvm.git] / test / CodeGen / PowerPC / merge-st-chain-op.ll
1 ; RUN: llc < %s | FileCheck %s
2 target datalayout = "E-m:e-i64:64-n32:64"
3 target triple = "powerpc64-unknown-linux-gnu"
4
5 @_ZNSs4_Rep20_S_empty_rep_storageE = external global [0 x i64], align 8
6
7 ; Function Attrs: nounwind
8 define void @_ZN5clang7tooling15RefactoringTool10runAndSaveEPNS0_21FrontendActionFactoryE() #0 align 2 {
9 entry:
10   br i1 undef, label %_ZN4llvm18IntrusiveRefCntPtrIN5clang13DiagnosticIDsEEC2EPS2_.exit, label %return
11
12 ; CHECK: @_ZN5clang7tooling15RefactoringTool10runAndSaveEPNS0_21FrontendActionFactoryE
13
14 _ZN4llvm18IntrusiveRefCntPtrIN5clang13DiagnosticIDsEEC2EPS2_.exit: ; preds = %entry
15   %call2 = call noalias i8* @_Znwm() #3
16   %ref_cnt.i.i = bitcast i8* %call2 to i32*
17   store <2 x i8*> <i8* bitcast (i64* getelementptr inbounds ([0 x i64], [0 x i64]* @_ZNSs4_Rep20_S_empty_rep_storageE, i64 0, i64 3) to i8*), i8* bitcast (i64* getelementptr inbounds ([0 x i64], [0 x i64]* @_ZNSs4_Rep20_S_empty_rep_storageE, i64 0, i64 3) to i8*)>, <2 x i8*>* undef, align 8
18   %IgnoreWarnings.i = getelementptr inbounds i8, i8* %call2, i64 4
19   %0 = bitcast i8* %IgnoreWarnings.i to i32*
20   call void @llvm.memset.p0i8.i64(i8* null, i8 0, i64 48, i32 8, i1 false) #4
21   store i32 251658240, i32* %0, align 4
22   store i256 37662610426935100959726589394453639584271499769928088551424, i256* null, align 8
23   store i32 1, i32* %ref_cnt.i.i, align 4
24   unreachable
25
26 return:                                           ; preds = %entry
27   ret void
28 }
29
30 ; Function Attrs: nobuiltin
31 declare noalias i8* @_Znwm() #1
32
33 ; Function Attrs: nounwind argmemonly
34 declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #2
35
36 attributes #0 = { nounwind "target-cpu"="pwr7" }
37 attributes #1 = { nobuiltin "target-cpu"="pwr7" }
38 attributes #2 = { nounwind argmemonly }
39 attributes #3 = { builtin nounwind }
40 attributes #4 = { nounwind }
41