1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -mtriple=powerpc64-unknown-linux-gnu   -o - %s | FileCheck --check-prefix=BE %s
3; RUN: llc -mtriple=powerpc64-ibm-aix-xcoff -o - %s | FileCheck --check-prefix=BE %s
4; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -o - %s | FileCheck --check-prefix=LE %s
5
6define void @fold_constant_stores_loaddr(i8* %i8_ptr) {
7; BE-LABEL: fold_constant_stores_loaddr:
8; BE:       # %bb.0: # %entry
9; BE-NEXT:    li 4, 0
10; BE-NEXT:    std 4, 0(3)
11; BE-NEXT:    li 4, -86
12; BE-NEXT:    stb 4, 0(3)
13; BE-NEXT:    blr
14;
15; LE-LABEL: fold_constant_stores_loaddr:
16; LE:       # %bb.0: # %entry
17; LE-NEXT:    li 4, 0
18; LE-NEXT:    li 5, -86
19; LE-NEXT:    std 4, 0(3)
20; LE-NEXT:    stb 5, 0(3)
21; LE-NEXT:    blr
22entry:
23  %i64_ptr = bitcast i8* %i8_ptr to i64*
24  store i64   0, i64* %i64_ptr, align 8
25  store i8  170,  i8*  %i8_ptr,  align 1
26  ret void
27}
28
29
30define void @fold_constant_stores_hiaddr(i8* %i8_ptr) {
31; BE-LABEL: fold_constant_stores_hiaddr:
32; BE:       # %bb.0: # %entry
33; BE-NEXT:    li 4, 0
34; BE-NEXT:    std 4, 0(3)
35; BE-NEXT:    li 4, -86
36; BE-NEXT:    stb 4, 0(3)
37; BE-NEXT:    blr
38;
39; LE-LABEL: fold_constant_stores_hiaddr:
40; LE:       # %bb.0: # %entry
41; LE-NEXT:    li 4, 0
42; LE-NEXT:    li 5, -86
43; LE-NEXT:    std 4, 0(3)
44; LE-NEXT:    stb 5, 0(3)
45; LE-NEXT:    blr
46entry:
47  %i64_ptr = bitcast i8* %i8_ptr to i64*
48  store i64   0, i64* %i64_ptr, align 8
49  %i8_ptr2 = getelementptr inbounds i8, i8* %i8_ptr, i64 7
50  store i8  170,  i8*  %i8_ptr,  align 1
51  ret void
52}
53