brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.5 KiB · 4de74fa Raw
266 lines · plain
1; RUN: llc -mtriple=s390x-linux-gnu < %s | FileCheck %s2 3@Addr = global i64 0, align 84@A = global ptr null, align 85@Idx = global i64 0, align 86 7define i64 @fun_BD12_Q() {8; CHECK-LABEL: fun_BD12_Q:9; CHECK: #APP10; CHECK: lay	%r2, 800(%r1)11entry:12  %0 = load ptr, ptr @A13  %arrayidx = getelementptr inbounds i64, ptr %0, i64 10014  %1 = tail call i64 asm "lay $0, $1", "=r,^ZQ"(ptr nonnull %arrayidx)15  store i64 %1, ptr @Addr16  ret i64 %117}18 19define i64 @fun_BD12_R() {20; CHECK-LABEL: fun_BD12_R:21; CHECK: #APP22; CHECK: lay	%r2, 800(%r1)23entry:24  %0 = load ptr, ptr @A25  %arrayidx = getelementptr inbounds i64, ptr %0, i64 10026  %1 = tail call i64 asm "lay $0, $1", "=r,^ZR"(ptr nonnull %arrayidx)27  store i64 %1, ptr @Addr28  ret i64 %129}30 31define i64 @fun_BD12_S() {32; CHECK-LABEL: fun_BD12_S:33; CHECK: #APP34; CHECK: lay	%r2, 800(%r1)35entry:36  %0 = load ptr, ptr @A37  %arrayidx = getelementptr inbounds i64, ptr %0, i64 10038  %1 = tail call i64 asm "lay $0, $1", "=r,^ZS"(ptr nonnull %arrayidx)39  store i64 %1, ptr @Addr40  ret i64 %141}42 43define i64 @fun_BD12_T() {44; CHECK-LABEL: fun_BD12_T:45; CHECK: #APP46; CHECK: lay	%r2, 800(%r1)47entry:48  %0 = load ptr, ptr @A49  %arrayidx = getelementptr inbounds i64, ptr %0, i64 10050  %1 = tail call i64 asm "lay $0, $1", "=r,^ZT"(ptr nonnull %arrayidx)51  store i64 %1, ptr @Addr52  ret i64 %153}54 55define i64 @fun_BD12_p() {56; CHECK-LABEL: fun_BD12_p:57; CHECK: #APP58; CHECK: lay	%r2, 800(%r1)59entry:60  %0 = load ptr, ptr @A61  %arrayidx = getelementptr inbounds i64, ptr %0, i64 10062  %1 = tail call i64 asm "lay $0, $1", "=r,p"(ptr nonnull %arrayidx)63  store i64 %1, ptr @Addr64  ret i64 %165}66 67define i64 @fun_BDX12_Q() {68; CHECK-LABEL: fun_BDX12_Q:69; CHECK: #APP70; CHECK: lay	%r2, 800(%r2)71entry:72  %0 = load ptr, ptr @A73  %1 = load i64, ptr @Idx74  %add = add nsw i64 %1, 10075  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add76  %2 = tail call i64 asm "lay $0, $1", "=r,^ZQ"(ptr %arrayidx)77  store i64 %2, ptr @Addr78  ret i64 %279}80 81define i64 @fun_BDX12_R() {82; CHECK-LABEL: fun_BDX12_R:83; CHECK: #APP84; CHECK: lay	%r2, 800(%r1,%r2)85entry:86  %0 = load ptr, ptr @A87  %1 = load i64, ptr @Idx88  %add = add nsw i64 %1, 10089  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add90  %2 = tail call i64 asm "lay $0, $1", "=r,^ZR"(ptr %arrayidx)91  store i64 %2, ptr @Addr92  ret i64 %293}94 95define i64 @fun_BDX12_S() {96; CHECK-LABEL: fun_BDX12_S:97; CHECK: #APP98; CHECK: lay	%r2, 800(%r2)99entry:100  %0 = load ptr, ptr @A101  %1 = load i64, ptr @Idx102  %add = add nsw i64 %1, 100103  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add104  %2 = tail call i64 asm "lay $0, $1", "=r,^ZS"(ptr %arrayidx)105  store i64 %2, ptr @Addr106  ret i64 %2107}108 109define i64 @fun_BDX12_T() {110; CHECK-LABEL: fun_BDX12_T:111; CHECK: #APP112; CHECK: lay	%r2, 800(%r1,%r2)113entry:114  %0 = load ptr, ptr @A115  %1 = load i64, ptr @Idx116  %add = add nsw i64 %1, 100117  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add118  %2 = tail call i64 asm "lay $0, $1", "=r,^ZT"(ptr %arrayidx)119  store i64 %2, ptr @Addr120  ret i64 %2121}122 123define i64 @fun_BDX12_p() {124; CHECK-LABEL: fun_BDX12_p:125; CHECK: #APP126; CHECK: lay	%r2, 800(%r1,%r2)127entry:128  %0 = load ptr, ptr @A129  %1 = load i64, ptr @Idx130  %add = add nsw i64 %1, 100131  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add132  %2 = tail call i64 asm "lay $0, $1", "=r,p"(ptr %arrayidx)133  store i64 %2, ptr @Addr134  ret i64 %2135}136 137define i64 @fun_BD20_Q() {138; CHECK-LABEL: fun_BD20_Q:139; CHECK: #APP140; CHECK: lay	%r2, 0(%r2)141entry:142  %0 = load ptr, ptr @A143  %arrayidx = getelementptr inbounds i64, ptr %0, i64 1000144  %1 = tail call i64 asm "lay $0, $1", "=r,^ZQ"(ptr nonnull %arrayidx)145  store i64 %1, ptr @Addr146  ret i64 %1147}148 149define i64 @fun_BD20_R() {150; CHECK-LABEL: fun_BD20_R:151; CHECK: #APP152; CHECK: lay	%r2, 0(%r2)153entry:154  %0 = load ptr, ptr @A155  %arrayidx = getelementptr inbounds i64, ptr %0, i64 1000156  %1 = tail call i64 asm "lay $0, $1", "=r,^ZR"(ptr nonnull %arrayidx)157  store i64 %1, ptr @Addr158  ret i64 %1159}160 161define i64 @fun_BD20_S() {162; CHECK-LABEL: fun_BD20_S:163; CHECK: #APP164; CHECK: lay	%r2, 8000(%r1)165entry:166  %0 = load ptr, ptr @A167  %arrayidx = getelementptr inbounds i64, ptr %0, i64 1000168  %1 = tail call i64 asm "lay $0, $1", "=r,^ZS"(ptr nonnull %arrayidx)169  store i64 %1, ptr @Addr170  ret i64 %1171}172 173define i64 @fun_BD20_T() {174; CHECK-LABEL: fun_BD20_T:175; CHECK: #APP176; CHECK: lay	%r2, 8000(%r1)177entry:178  %0 = load ptr, ptr @A179  %arrayidx = getelementptr inbounds i64, ptr %0, i64 1000180  %1 = tail call i64 asm "lay $0, $1", "=r,^ZT"(ptr nonnull %arrayidx)181  store i64 %1, ptr @Addr182  ret i64 %1183}184 185define i64 @fun_BD20_p() {186; CHECK-LABEL: fun_BD20_p:187; CHECK: #APP188; CHECK: lay	%r2, 8000(%r1)189entry:190  %0 = load ptr, ptr @A191  %arrayidx = getelementptr inbounds i64, ptr %0, i64 1000192  %1 = tail call i64 asm "lay $0, $1", "=r,p"(ptr nonnull %arrayidx)193  store i64 %1, ptr @Addr194  ret i64 %1195}196 197define i64 @fun_BDX20_Q() {198; CHECK-LABEL: fun_BDX20_Q:199; CHECK: #APP200; CHECK: lay	%r2, 0(%r1)201entry:202  %0 = load ptr, ptr @A203  %1 = load i64, ptr @Idx204  %add = add nsw i64 %1, 1000205  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add206  %2 = tail call i64 asm "lay $0, $1", "=r,^ZQ"(ptr %arrayidx)207  store i64 %2, ptr @Addr208  ret i64 %2209}210 211define i64 @fun_BDX20_R() {212; CHECK-LABEL: fun_BDX20_R:213; CHECK: #APP214; CHECK: lay	%r2, 0(%r1)215entry:216  %0 = load ptr, ptr @A217  %1 = load i64, ptr @Idx218  %add = add nsw i64 %1, 1000219  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add220  %2 = tail call i64 asm "lay $0, $1", "=r,^ZR"(ptr %arrayidx)221  store i64 %2, ptr @Addr222  ret i64 %2223}224 225define i64 @fun_BDX20_S() {226; CHECK-LABEL: fun_BDX20_S:227; CHECK: #APP228; CHECK: lay	%r2, 8000(%r2)229entry:230  %0 = load ptr, ptr @A231  %1 = load i64, ptr @Idx232  %add = add nsw i64 %1, 1000233  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add234  %2 = tail call i64 asm "lay $0, $1", "=r,^ZS"(ptr %arrayidx)235  store i64 %2, ptr @Addr236  ret i64 %2237}238 239define i64 @fun_BDX20_T() {240; CHECK-LABEL: fun_BDX20_T:241; CHECK: #APP242; CHECK: lay	%r2, 8000(%r1,%r2)243entry:244  %0 = load ptr, ptr @A245  %1 = load i64, ptr @Idx246  %add = add nsw i64 %1, 1000247  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add248  %2 = tail call i64 asm "lay $0, $1", "=r,^ZT"(ptr %arrayidx)249  store i64 %2, ptr @Addr250  ret i64 %2251}252 253define i64 @fun_BDX20_p() {254; CHECK-LABEL: fun_BDX20_p:255; CHECK: #APP256; CHECK: lay	%r2, 8000(%r1,%r2)257entry:258  %0 = load ptr, ptr @A259  %1 = load i64, ptr @Idx260  %add = add nsw i64 %1, 1000261  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add262  %2 = tail call i64 asm "lay $0, $1", "=r,p"(ptr %arrayidx)263  store i64 %2, ptr @Addr264  ret i64 %2265}266