1*9880d681SAndroid Build Coastguard Worker; Test the GPR constraint "a", which forbids %r0. 2*9880d681SAndroid Build Coastguard Worker; 3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu -no-integrated-as | FileCheck %s 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine i64 @f1() { 6*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f1: 7*9880d681SAndroid Build Coastguard Worker; CHECK: lhi %r1, 1 8*9880d681SAndroid Build Coastguard Worker; CHECK: blah %r2 %r1 9*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 10*9880d681SAndroid Build Coastguard Worker %val = call i64 asm "blah $0 $1", "=r,a" (i8 1) 11*9880d681SAndroid Build Coastguard Worker ret i64 %val 12*9880d681SAndroid Build Coastguard Worker} 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Workerdefine i64 @f2() { 15*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f2: 16*9880d681SAndroid Build Coastguard Worker; CHECK: lhi %r1, 2 17*9880d681SAndroid Build Coastguard Worker; CHECK: blah %r2 %r1 18*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 19*9880d681SAndroid Build Coastguard Worker %val = call i64 asm "blah $0 $1", "=r,a" (i16 2) 20*9880d681SAndroid Build Coastguard Worker ret i64 %val 21*9880d681SAndroid Build Coastguard Worker} 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workerdefine i64 @f3() { 24*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f3: 25*9880d681SAndroid Build Coastguard Worker; CHECK: lhi %r1, 3 26*9880d681SAndroid Build Coastguard Worker; CHECK: blah %r2 %r1 27*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 28*9880d681SAndroid Build Coastguard Worker %val = call i64 asm "blah $0 $1", "=r,a" (i32 3) 29*9880d681SAndroid Build Coastguard Worker ret i64 %val 30*9880d681SAndroid Build Coastguard Worker} 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Workerdefine i64 @f4() { 33*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f4: 34*9880d681SAndroid Build Coastguard Worker; CHECK: lghi %r1, 4 35*9880d681SAndroid Build Coastguard Worker; CHECK: blah %r2 %r1 36*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 37*9880d681SAndroid Build Coastguard Worker %val = call i64 asm "blah $0 $1", "=r,a" (i64 4) 38*9880d681SAndroid Build Coastguard Worker ret i64 %val 39*9880d681SAndroid Build Coastguard Worker} 40