[NFC][Py Reformat] Reformat python files in llvm
[llvm-project.git] / llvm / test / CodeGen / PowerPC / store-update.ll
blob882eb2a376454ab1a5f90009475eb4418f0dbd57
1 ; RUN: llc -verify-machineinstrs < %s | FileCheck %s
3 target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-v128:128:128-n32:64"
4 target triple = "powerpc64-unknown-linux-gnu"
6 define ptr @test_stbu(ptr %base, i8 zeroext %val) nounwind {
7 entry:
8   %arrayidx = getelementptr inbounds i8, ptr %base, i64 16
9   store i8 %val, ptr %arrayidx, align 1
10   ret ptr %arrayidx
12 ; CHECK: @test_stbu
13 ; CHECK: %entry
14 ; CHECK-NEXT: stbu
15 ; CHECK-NEXT: blr
17 define ptr @test_stbux(ptr %base, i8 zeroext %val, i64 %offset) nounwind {
18 entry:
19   %arrayidx = getelementptr inbounds i8, ptr %base, i64 %offset
20   store i8 %val, ptr %arrayidx, align 1
21   ret ptr %arrayidx
23 ; CHECK: @test_stbux
24 ; CHECK: %entry
25 ; CHECK-NEXT: stbux
26 ; CHECK-NEXT: blr
28 define ptr @test_sthu(ptr %base, i16 zeroext %val) nounwind {
29 entry:
30   %arrayidx = getelementptr inbounds i16, ptr %base, i64 16
31   store i16 %val, ptr %arrayidx, align 2
32   ret ptr %arrayidx
34 ; CHECK: @test_sthu
35 ; CHECK: %entry
36 ; CHECK-NEXT: sthu
37 ; CHECK-NEXT: blr
39 define ptr @test_sthux(ptr %base, i16 zeroext %val, i64 %offset) nounwind {
40 entry:
41   %arrayidx = getelementptr inbounds i16, ptr %base, i64 %offset
42   store i16 %val, ptr %arrayidx, align 2
43   ret ptr %arrayidx
45 ; CHECK: @test_sthux
46 ; CHECK: %entry
47 ; CHECK-NEXT: sldi
48 ; CHECK-NEXT: sthux
49 ; CHECK-NEXT: blr
51 define ptr @test_stwu(ptr %base, i32 zeroext %val) nounwind {
52 entry:
53   %arrayidx = getelementptr inbounds i32, ptr %base, i64 16
54   store i32 %val, ptr %arrayidx, align 4
55   ret ptr %arrayidx
57 ; CHECK: @test_stwu
58 ; CHECK: %entry
59 ; CHECK-NEXT: stwu
60 ; CHECK-NEXT: blr
62 define ptr @test_stwux(ptr %base, i32 zeroext %val, i64 %offset) nounwind {
63 entry:
64   %arrayidx = getelementptr inbounds i32, ptr %base, i64 %offset
65   store i32 %val, ptr %arrayidx, align 4
66   ret ptr %arrayidx
68 ; CHECK: @test_stwux
69 ; CHECK: %entry
70 ; CHECK-NEXT: sldi
71 ; CHECK-NEXT: stwux
72 ; CHECK-NEXT: blr
74 define ptr @test_stbu8(ptr %base, i64 %val) nounwind {
75 entry:
76   %conv = trunc i64 %val to i8
77   %arrayidx = getelementptr inbounds i8, ptr %base, i64 16
78   store i8 %conv, ptr %arrayidx, align 1
79   ret ptr %arrayidx
81 ; CHECK: @test_stbu8
82 ; CHECK: %entry
83 ; CHECK-NEXT: stbu
84 ; CHECK-NEXT: blr
86 define ptr @test_stbux8(ptr %base, i64 %val, i64 %offset) nounwind {
87 entry:
88   %conv = trunc i64 %val to i8
89   %arrayidx = getelementptr inbounds i8, ptr %base, i64 %offset
90   store i8 %conv, ptr %arrayidx, align 1
91   ret ptr %arrayidx
93 ; CHECK: @test_stbux8
94 ; CHECK: %entry
95 ; CHECK-NEXT: stbux
96 ; CHECK-NEXT: blr
98 define ptr @test_sthu8(ptr %base, i64 %val) nounwind {
99 entry:
100   %conv = trunc i64 %val to i16
101   %arrayidx = getelementptr inbounds i16, ptr %base, i64 16
102   store i16 %conv, ptr %arrayidx, align 2
103   ret ptr %arrayidx
105 ; CHECK: @test_sthu
106 ; CHECK: %entry
107 ; CHECK-NEXT: sthu
108 ; CHECK-NEXT: blr
110 define ptr @test_sthux8(ptr %base, i64 %val, i64 %offset) nounwind {
111 entry:
112   %conv = trunc i64 %val to i16
113   %arrayidx = getelementptr inbounds i16, ptr %base, i64 %offset
114   store i16 %conv, ptr %arrayidx, align 2
115   ret ptr %arrayidx
117 ; CHECK: @test_sthux
118 ; CHECK: %entry
119 ; CHECK-NEXT: sldi
120 ; CHECK-NEXT: sthux
121 ; CHECK-NEXT: blr
123 define ptr @test_stwu8(ptr %base, i64 %val) nounwind {
124 entry:
125   %conv = trunc i64 %val to i32
126   %arrayidx = getelementptr inbounds i32, ptr %base, i64 16
127   store i32 %conv, ptr %arrayidx, align 4
128   ret ptr %arrayidx
130 ; CHECK: @test_stwu
131 ; CHECK: %entry
132 ; CHECK-NEXT: stwu
133 ; CHECK-NEXT: blr
135 define ptr @test_stwux8(ptr %base, i64 %val, i64 %offset) nounwind {
136 entry:
137   %conv = trunc i64 %val to i32
138   %arrayidx = getelementptr inbounds i32, ptr %base, i64 %offset
139   store i32 %conv, ptr %arrayidx, align 4
140   ret ptr %arrayidx
142 ; CHECK: @test_stwux
143 ; CHECK: %entry
144 ; CHECK-NEXT: sldi
145 ; CHECK-NEXT: stwux
146 ; CHECK-NEXT: blr
148 define ptr @test_stdu(ptr %base, i64 %val) nounwind {
149 entry:
150   %arrayidx = getelementptr inbounds i64, ptr %base, i64 16
151   store i64 %val, ptr %arrayidx, align 8
152   ret ptr %arrayidx
154 ; CHECK: @test_stdu
155 ; CHECK: %entry
156 ; CHECK-NEXT: stdu
157 ; CHECK-NEXT: blr
159 define ptr @test_stdux(ptr %base, i64 %val, i64 %offset) nounwind {
160 entry:
161   %arrayidx = getelementptr inbounds i64, ptr %base, i64 %offset
162   store i64 %val, ptr %arrayidx, align 8
163   ret ptr %arrayidx
165 ; CHECK: @test_stdux
166 ; CHECK: %entry
167 ; CHECK-NEXT: sldi
168 ; CHECK-NEXT: stdux
169 ; CHECK-NEXT: blr