brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 66da03b Raw
84 lines · plain
1; Test matching operands with the GPR constraint "r".2;3; RUN: llc < %s -mtriple=s390x-linux-gnu -no-integrated-as | FileCheck %s4 5define void @f1(ptr %dst) {6; CHECK-LABEL: f1:7; CHECK: lhi %r0, 1008; CHECK: blah %r09; CHECK: st %r0, 0(%r2)10; CHECK: br %r1411  %val = call i32 asm "blah $0", "=r,0" (i8 100)12  store i32 %val, ptr %dst13  ret void14}15 16define void @f2(ptr %dst) {17; CHECK-LABEL: f2:18; CHECK: lhi %r0, 10119; CHECK: blah %r020; CHECK: st %r0, 0(%r2)21; CHECK: br %r1422  %val = call i32 asm "blah $0", "=r,0" (i16 101)23  store i32 %val, ptr %dst24  ret void25}26 27define void @f3(ptr %dst) {28; CHECK-LABEL: f3:29; CHECK: lhi %r0, 10230; CHECK: blah %r031; CHECK: st %r0, 0(%r2)32; CHECK: br %r1433  %val = call i32 asm "blah $0", "=r,0" (i32 102)34  store i32 %val, ptr %dst35  ret void36}37 38; FIXME: this uses "lhi %r0, 103", but should use "lghi %r0, 103".39define void @f4(ptr %dst) {40; CHECK-LABEL: f4:41; CHECK: blah %r042; CHECK: st %r0, 0(%r2)43; CHECK: br %r1444  %val = call i32 asm "blah $0", "=r,0" (i64 103)45  store i32 %val, ptr %dst46  ret void47}48 49define i64 @f5() {50; CHECK-LABEL: f5:51; CHECK: lghi %r2, 10452; CHECK: blah %r253; CHECK: br %r1454  %val = call i64 asm "blah $0", "=r,0" (i8 104)55  ret i64 %val56}57 58define i64 @f6() {59; CHECK-LABEL: f6:60; CHECK: lghi %r2, 10561; CHECK: blah %r262; CHECK: br %r1463  %val = call i64 asm "blah $0", "=r,0" (i16 105)64  ret i64 %val65}66 67define i64 @f7() {68; CHECK-LABEL: f7:69; CHECK: lghi %r2, 10670; CHECK: blah %r271; CHECK: br %r1472  %val = call i64 asm "blah $0", "=r,0" (i32 106)73  ret i64 %val74}75 76define i64 @f8() {77; CHECK-LABEL: f8:78; CHECK: lghi %r2, 10779; CHECK: blah %r280; CHECK: br %r1481  %val = call i64 asm "blah $0", "=r,0" (i64 107)82  ret i64 %val83}84