1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-unknown \
3 ; RUN: -mcpu=pwr8 -code-model=large < %s | FileCheck %s
4 %struct.STATICS1 = type <{ [128 x i8] }>
6 @.STATICS1 = internal global %struct.STATICS1 <{ [128 x i8] c"\09\00\00\00\03\00\00\00\05\00\00\00\04\00\00\00\0A\00\00\00\0A\00\00\00\0B\00\00\00\0A\08\AF/\B8\B6\87\04 \A1\07\00\08\9D\00\00\09\00\00\00\05\00\00\00\03\00\00\00\03\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" }>, align 16
7 @.C302_MAIN_ = internal constant i32 4
9 ; Function Attrs: noinline norecurse nounwind
12 tail call void @testFunc(i64* bitcast (i8* getelementptr inbounds (%struct.STATICS1, %struct.STATICS1* @.STATICS1, i64 0, i32 0, i64 124) to i64*), i64* bitcast (i32* @.C302_MAIN_ to i64*))
16 ; Function Attrs: noinline norecurse nounwind readonly
17 define signext i32 @ifunc_(i64* nocapture readonly %i) {
18 ; CHECK-LABEL: ifunc_:
19 ; CHECK: # %bb.0: # %L.entry
20 ; CHECK-NEXT: lwa 3, 0(3)
23 %0 = bitcast i64* %i to i32*
24 %1 = load i32, i32* %0, align 4
28 ; Function Attrs: noinline norecurse nounwind
29 define void @testFunc(i64* nocapture %r, i64* nocapture readonly %k) {
30 ; CHECK-LABEL: testFunc
33 ; CHECK: bl .[[BRANCHNEXT:[L0-9\$a-z]+]]
34 ; CHECK-NEXT: [[BRANCHNEXT]]
36 %0 = bitcast i64* %k to i32*
37 %1 = load i32, i32* %0, align 4
38 switch i32 %1, label %L.LB3_307 [
39 i32 1, label %L.LB3_307.sink.split
40 i32 3, label %L.LB3_307.sink.split
41 i32 4, label %L.LB3_321.split
42 i32 5, label %L.LB3_307.sink.split
43 i32 6, label %infloop.preheader
44 i32 2, label %infloop11.preheader
47 infloop11.preheader: ; preds = %L.entry
50 infloop.preheader: ; preds = %L.entry
53 L.LB3_321.split: ; preds = %L.entry
54 br label %L.LB3_307.sink.split
56 L.LB3_307.sink.split: ; preds = %L.LB3_321.split, %L.entry, %L.entry, %L.entry
57 %.sink = phi i32 [ 5, %L.LB3_321.split ], [ -3, %L.entry ], [ -3, %L.entry ], [ -3, %L.entry ]
58 %2 = bitcast i64* %r to i32*
59 store i32 %.sink, i32* %2, align 4
62 L.LB3_307: ; preds = %L.LB3_307.sink.split, %L.entry
65 infloop: ; preds = %infloop.preheader, %infloop
68 infloop11: ; preds = %infloop11.preheader, %infloop11