blob: b212253dbd9cb7b959c8563b0f15ad111fefb42b [file] [log] [blame]
Ulrich Weigand9e3577f2013-05-06 16:17:29 +00001; Test the "T" asm constraint, which accepts addresses that have a base,
2; an index and a 20-bit displacement.
3;
Ulrich Weigandbd039292015-01-13 19:45:16 +00004; RUN: llc < %s -mtriple=s390x-linux-gnu -no-integrated-as | FileCheck %s
Ulrich Weigand9e3577f2013-05-06 16:17:29 +00005
6define void @f1(i64 %base) {
Stephen Lind24ab202013-07-14 06:24:09 +00007; CHECK-LABEL: f1:
Ulrich Weigand9e3577f2013-05-06 16:17:29 +00008; CHECK: blah 0(%r2)
9; CHECK: br %r14
10 %addr = inttoptr i64 %base to i64 *
11 call void asm "blah $0", "=*T" (i64 *%addr)
12 ret void
13}
14
15; FIXME: at the moment the precise constraint is not passed down to
16; target code, so we must conservatively treat "T" as "Q".