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