brintos

brintos / llvm-project-archived public Read only

0
0
Text · 19.4 KiB · 4a18ece Raw
402 lines · plain
1; RUN: not llvm-as %s -o /dev/null 2>&1 | FileCheck %s2 3declare <2 x double> @llvm.s390.vfidb(<2 x double>, i32, i32)4define void @test_vfidb(<2 x double> %arg0, i32 %arg1, i32 %arg2) {5  ; CHECK: immarg operand has non-immediate parameter6  ; CHECK-NEXT: i32 %arg17  ; CHECK-NEXT: %ret0 = call <2 x double> @llvm.s390.vfidb(<2 x double> %arg0, i32 %arg1, i32 0)8  ; CHECK: immarg operand has non-immediate parameter9  ; CHECK-NEXT: i32 %arg210  ; CHECK-NEXT: %ret1 = call <2 x double> @llvm.s390.vfidb(<2 x double> %arg0, i32 0, i32 %arg2)11  %ret0 = call <2 x double> @llvm.s390.vfidb(<2 x double> %arg0, i32 %arg1, i32 0)12  %ret1 = call <2 x double> @llvm.s390.vfidb(<2 x double> %arg0, i32 0, i32 %arg2)13  ret void14}15 16declare <2 x double> @llvm.s390.vfmaxdb(<2 x double>, <2 x double>, i32)17define <2 x double> @test_vfmaxdb(<2 x double> %arg0, <2 x double> %arg1, i32 %arg2) {18  ; CHECK: immarg operand has non-immediate parameter19  ; CHECK-NEXT: i32 %arg220  ; CHECK-NEXT: %ret = call <2 x double> @llvm.s390.vfmaxdb(<2 x double> %arg0, <2 x double> %arg1, i32 %arg2)21  %ret = call <2 x double> @llvm.s390.vfmaxdb(<2 x double> %arg0, <2 x double> %arg1, i32 %arg2)22  ret <2 x double> %ret23}24 25declare <2 x double> @llvm.s390.vfmindb(<2 x double>, <2 x double>, i32)26define <2 x double> @test_vfmindb(<2 x double> %arg0, <2 x double> %arg1, i32 %arg2) {27  ; CHECK: immarg operand has non-immediate parameter28  ; CHECK-NEXT: i32 %arg229  ; CHECK-NEXT: %ret = call <2 x double> @llvm.s390.vfmindb(<2 x double> %arg0, <2 x double> %arg1, i32 %arg2)30  %ret = call <2 x double> @llvm.s390.vfmindb(<2 x double> %arg0, <2 x double> %arg1, i32 %arg2)31  ret <2 x double> %ret32}33 34declare <4 x float> @llvm.s390.vfmaxsb(<4 x float>, <4 x float>, i32)35define <4 x float> @test_vfmaxsb(<4 x float> %arg0, <4 x float> %arg1, i32 %arg2) {36  ; CHECK: immarg operand has non-immediate parameter37  ; CHECK-NEXT: i32 %arg238  ; CHECK-NEXT: %ret = call <4 x float> @llvm.s390.vfmaxsb(<4 x float> %arg0, <4 x float> %arg1, i32 %arg2)39  %ret = call <4 x float> @llvm.s390.vfmaxsb(<4 x float> %arg0, <4 x float> %arg1, i32 %arg2)40  ret <4 x float> %ret41}42 43declare <4 x float> @llvm.s390.vfminsb(<4 x float>, <4 x float>, i32)44define <4 x float> @test_vfminsb(<4 x float> %arg0, <4 x float> %arg1, i32 %arg2) {45  ; CHECK: immarg operand has non-immediate parameter46  ; CHECK-NEXT: i32 %arg247  ; CHECK-NEXT: %ret = call <4 x float> @llvm.s390.vfminsb(<4 x float> %arg0, <4 x float> %arg1, i32 %arg2)48  %ret = call <4 x float> @llvm.s390.vfminsb(<4 x float> %arg0, <4 x float> %arg1, i32 %arg2)49  ret <4 x float> %ret50}51 52declare <4 x float> @llvm.s390.vfisb(<4 x float>, i32, i32)53define <4 x float> @test_vfisb(<4 x float> %arg0, i32 %arg1, i32 %arg2) {54  ; CHECK: immarg operand has non-immediate parameter55  ; CHECK-NEXT: i32 %arg156  ; CHECK-NEXT: %ret0 = call <4 x float> @llvm.s390.vfisb(<4 x float> %arg0, i32 %arg1, i32 0)57  %ret0 = call <4 x float> @llvm.s390.vfisb(<4 x float> %arg0, i32 %arg1, i32 0)58 59  ; CHECK: immarg operand has non-immediate parameter60  ; CHECK-NEXT: i32 %arg261  ; CHECK-NEXT: %ret1 = call <4 x float> @llvm.s390.vfisb(<4 x float> %ret0, i32 0, i32 %arg2)62  %ret1 = call <4 x float> @llvm.s390.vfisb(<4 x float> %ret0, i32 0, i32 %arg2)63 64  ret <4 x float> %ret165}66 67declare <16 x i8> @llvm.s390.vstrcb(<16 x i8>, <16 x i8>, <16 x i8>, i32)68define <16 x i8> @test_vstrcb(<16 x i8> %arg0, <16 x i8> %arg1, <16 x i8> %arg2, i32 %arg3) {69  ; CHECK: immarg operand has non-immediate parameter70  ; CHECK-NEXT: i32 %arg371  ; CHECK-NEXT: %ret = call <16 x i8> @llvm.s390.vstrcb(<16 x i8> %arg0, <16 x i8> %arg1, <16 x i8> %arg2, i32 %arg3)72  %ret = call <16 x i8> @llvm.s390.vstrcb(<16 x i8> %arg0, <16 x i8>%arg1, <16 x i8> %arg2, i32 %arg3)73  ret <16 x i8> %ret74}75 76declare <8 x i16> @llvm.s390.vstrch(<8 x i16>, <8 x i16>, <8 x i16>, i32)77define <8 x i16> @test_vstrch(<8 x i16> %arg0, <8 x i16> %arg1, <8 x i16> %arg2, i32 %arg3) {78  ; CHECK: immarg operand has non-immediate parameter79  ; CHECK-NEXT: i32 %arg380  ; CHECK-NEXT: %ret = call <8 x i16> @llvm.s390.vstrch(<8 x i16> %arg0, <8 x i16> %arg1, <8 x i16> %arg2, i32 %arg3)81  %ret = call <8 x i16> @llvm.s390.vstrch(<8 x i16> %arg0, <8 x i16>%arg1, <8 x i16> %arg2, i32 %arg3)82  ret <8 x i16> %ret83}84 85declare <4 x i32> @llvm.s390.vstrcf(<4 x i32>, <4 x i32>, <4 x i32>, i32)86define <4 x i32> @test_vstrcf(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, i32 %arg3) {87  ; CHECK: immarg operand has non-immediate parameter88  ; CHECK-NEXT: i32 %arg389  ; CHECK-NEXT: %ret = call <4 x i32> @llvm.s390.vstrcf(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, i32 %arg3)90  %ret = call <4 x i32> @llvm.s390.vstrcf(<4 x i32> %arg0, <4 x i32>%arg1, <4 x i32> %arg2, i32 %arg3)91  ret <4 x i32> %ret92}93 94declare <16 x i8> @llvm.s390.vstrczb(<16 x i8>, <16 x i8>, <16 x i8>, i32)95define <16 x i8> @test_vstrczb(<16 x i8> %arg0, <16 x i8> %arg1, <16 x i8> %arg2, i32 %arg3) {96  ; CHECK: immarg operand has non-immediate parameter97  ; CHECK-NEXT: i32 %arg398  ; CHECK-NEXT: %ret = call <16 x i8> @llvm.s390.vstrczb(<16 x i8> %arg0, <16 x i8> %arg1, <16 x i8> %arg2, i32 %arg3)99  %ret = call <16 x i8> @llvm.s390.vstrczb(<16 x i8> %arg0, <16 x i8>%arg1, <16 x i8> %arg2, i32 %arg3)100  ret <16 x i8> %ret101}102 103declare <8 x i16> @llvm.s390.vstrczh(<8 x i16>, <8 x i16>, <8 x i16>, i32)104define <8 x i16> @test_vstrczh(<8 x i16> %arg0, <8 x i16> %arg1, <8 x i16> %arg2, i32 %arg3) {105  ; CHECK: immarg operand has non-immediate parameter106  ; CHECK-NEXT: i32 %arg3107  ; CHECK-NEXT: %ret = call <8 x i16> @llvm.s390.vstrczh(<8 x i16> %arg0, <8 x i16> %arg1, <8 x i16> %arg2, i32 %arg3)108  %ret = call <8 x i16> @llvm.s390.vstrczh(<8 x i16> %arg0, <8 x i16>%arg1, <8 x i16> %arg2, i32 %arg3)109  ret <8 x i16> %ret110}111 112declare <4 x i32> @llvm.s390.vstrczf(<4 x i32>, <4 x i32>, <4 x i32>, i32)113define <4 x i32> @test_vstrczf(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, i32 %arg3) {114  ; CHECK: immarg operand has non-immediate parameter115  ; CHECK-NEXT: i32 %arg3116  ; CHECK-NEXT: %ret = call <4 x i32> @llvm.s390.vstrczf(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, i32 %arg3)117  %ret = call <4 x i32> @llvm.s390.vstrczf(<4 x i32> %arg0, <4 x i32>%arg1, <4 x i32> %arg2, i32 %arg3)118  ret <4 x i32> %ret119}120 121declare { <16 x i8>, i32 } @llvm.s390.vstrcbs(<16 x i8>, <16 x i8>, <16 x i8>, i32)122define { <16 x i8>, i32 } @test_vstrcbs(<16 x i8> %arg0, <16 x i8> %arg1, <16 x i8> %arg2, i32 %arg3) {123  ; CHECK: immarg operand has non-immediate parameter124  ; CHECK-NEXT: i32 %arg3125  ; CHECK-NEXT: %ret = call { <16 x i8>, i32 } @llvm.s390.vstrcbs(<16 x i8> %arg0, <16 x i8> %arg1, <16 x i8> %arg2, i32 %arg3)126  %ret = call { <16 x i8>, i32 } @llvm.s390.vstrcbs(<16 x i8> %arg0, <16 x i8>%arg1, <16 x i8> %arg2, i32 %arg3)127  ret { <16 x i8>, i32 } %ret128}129 130declare { <8 x i16>, i32 } @llvm.s390.vstrchs(<8 x i16>, <8 x i16>, <8 x i16>, i32)131define { <8 x i16>, i32 } @test_vstrchs(<8 x i16> %arg0, <8 x i16> %arg1, <8 x i16> %arg2, i32 %arg3) {132  ; CHECK: immarg operand has non-immediate parameter133  ; CHECK-NEXT: i32 %arg3134  ; CHECK-NEXT: %ret = call { <8 x i16>, i32 } @llvm.s390.vstrchs(<8 x i16> %arg0, <8 x i16> %arg1, <8 x i16> %arg2, i32 %arg3)135  %ret = call { <8 x i16>, i32 } @llvm.s390.vstrchs(<8 x i16> %arg0, <8 x i16>%arg1, <8 x i16> %arg2, i32 %arg3)136  ret { <8 x i16>, i32 } %ret137}138 139declare { <4 x i32>, i32 } @llvm.s390.vstrcfs(<4 x i32>, <4 x i32>, <4 x i32>, i32)140define { <4 x i32>, i32 } @test_vstrcfs(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, i32 %arg3) {141  ; CHECK: immarg operand has non-immediate parameter142  ; CHECK-NEXT: i32 %arg3143  ; CHECK-NEXT: %ret = call { <4 x i32>, i32 } @llvm.s390.vstrcfs(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, i32 %arg3)144  %ret = call { <4 x i32>, i32 } @llvm.s390.vstrcfs(<4 x i32> %arg0, <4 x i32>%arg1, <4 x i32> %arg2, i32 %arg3)145  ret { <4 x i32>, i32 } %ret146}147 148declare { <16 x i8>, i32 } @llvm.s390.vstrczbs(<16 x i8>, <16 x i8>, <16 x i8>, i32)149define { <16 x i8>, i32 } @test_vstrczbs(<16 x i8> %arg0, <16 x i8> %arg1, <16 x i8> %arg2, i32 %arg3) {150  ; CHECK: immarg operand has non-immediate parameter151  ; CHECK-NEXT: i32 %arg3152  ; CHECK-NEXT: %ret = call { <16 x i8>, i32 } @llvm.s390.vstrczbs(<16 x i8> %arg0, <16 x i8> %arg1, <16 x i8> %arg2, i32 %arg3)153  %ret = call { <16 x i8>, i32 } @llvm.s390.vstrczbs(<16 x i8> %arg0, <16 x i8>%arg1, <16 x i8> %arg2, i32 %arg3)154  ret { <16 x i8>, i32 } %ret155}156 157declare { <8 x i16>, i32 } @llvm.s390.vstrczhs(<8 x i16>, <8 x i16>, <8 x i16>, i32)158define { <8 x i16>, i32 } @test_vstrczhs(<8 x i16> %arg0, <8 x i16> %arg1, <8 x i16> %arg2, i32 %arg3) {159  ; CHECK: immarg operand has non-immediate parameter160  ; CHECK-NEXT: i32 %arg3161  ; CHECK-NEXT: %ret = call { <8 x i16>, i32 } @llvm.s390.vstrczhs(<8 x i16> %arg0, <8 x i16> %arg1, <8 x i16> %arg2, i32 %arg3)162  %ret = call { <8 x i16>, i32 } @llvm.s390.vstrczhs(<8 x i16> %arg0, <8 x i16>%arg1, <8 x i16> %arg2, i32 %arg3)163  ret { <8 x i16>, i32 } %ret164}165 166declare { <4 x i32>, i32 } @llvm.s390.vstrczfs(<4 x i32>, <4 x i32>, <4 x i32>, i32)167define { <4 x i32>, i32 } @test_vstrczfs(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, i32 %arg3) {168  ; CHECK: immarg operand has non-immediate parameter169  ; CHECK-NEXT: i32 %arg3170  ; CHECK-NEXT: %ret = call { <4 x i32>, i32 } @llvm.s390.vstrczfs(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, i32 %arg3)171  %ret = call { <4 x i32>, i32 } @llvm.s390.vstrczfs(<4 x i32> %arg0, <4 x i32>%arg1, <4 x i32> %arg2, i32 %arg3)172  ret { <4 x i32>, i32 } %ret173}174 175declare <16 x i8> @llvm.s390.verimb(<16 x i8>, <16 x i8>, <16 x i8>, i32)176define <16 x i8> @test_verimb(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c, i32 %d) {177  ; CHECK: immarg operand has non-immediate parameter178  ; CHECK-NEXT: i32 %d179  ; CHECK-NEXT: %res = call <16 x i8> @llvm.s390.verimb(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c, i32 %d)180  %res = call <16 x i8> @llvm.s390.verimb(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c, i32 %d)181  ret <16 x i8> %res182}183 184declare <8 x i16> @llvm.s390.verimh(<8 x i16>, <8 x i16>, <8 x i16>, i32)185define <8 x i16> @test_verimh(<8 x i16> %a, <8 x i16> %b, <8 x i16> %c, i32 %d) {186  ; CHECK: immarg operand has non-immediate parameter187  ; CHECK-NEXT: i32 %d188  ; CHECK-NEXT: %res = call <8 x i16> @llvm.s390.verimh(<8 x i16> %a, <8 x i16> %b, <8 x i16> %c, i32 %d)189  %res = call <8 x i16> @llvm.s390.verimh(<8 x i16> %a, <8 x i16> %b, <8 x i16> %c, i32 %d)190  ret <8 x i16> %res191}192 193declare <4 x i32> @llvm.s390.verimf(<4 x i32>, <4 x i32>, <4 x i32>, i32)194define <4 x i32> @test_verimf(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c, i32 %d) {195  ; CHECK: immarg operand has non-immediate parameter196  ; CHECK-NEXT: i32 %d197  ; CHECK-NEXT: %res = call <4 x i32> @llvm.s390.verimf(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c, i32 %d)198  %res = call <4 x i32> @llvm.s390.verimf(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c, i32 %d)199  ret <4 x i32> %res200}201 202declare <2 x i64> @llvm.s390.verimg(<2 x i64>, <2 x i64>, <2 x i64>, i32)203define <2 x i64> @test_verimg(<2 x i64> %a, <2 x i64> %b, <2 x i64> %c, i32 %d) {204  ; CHECK: immarg operand has non-immediate parameter205  ; CHECK-NEXT: i32 %d206  ; CHECK-NEXT: %res = call <2 x i64> @llvm.s390.verimg(<2 x i64> %a, <2 x i64> %b, <2 x i64> %c, i32 %d)207  %res = call <2 x i64> @llvm.s390.verimg(<2 x i64> %a, <2 x i64> %b, <2 x i64> %c, i32 %d)208  ret <2 x i64> %res209}210 211declare {<2 x i64>, i32} @llvm.s390.vftcidb(<2 x double>, i32)212define i32 @test_vftcidb(<2 x double> %a, i32 %b) {213  ; CHECK: immarg operand has non-immediate parameter214  ; CHECK-NEXT: i32 %b215  ; CHECK-NEXT: %call = call { <2 x i64>, i32 } @llvm.s390.vftcidb(<2 x double> %a, i32 %b)216  %call = call {<2 x i64>, i32} @llvm.s390.vftcidb(<2 x double> %a, i32 %b)217  %res = extractvalue {<2 x i64>, i32} %call, 1218  ret i32 %res219}220 221declare {<4 x i32>, i32} @llvm.s390.vftcisb(<4 x float>, i32)222define i32 @test_vftcisb(<4 x float> %a, i32 %b) {223  ; CHECK: immarg operand has non-immediate parameter224  ; CHECK-NEXT: i32 %b225  ; CHECK-NEXT: %call = call { <4 x i32>, i32 } @llvm.s390.vftcisb(<4 x float> %a, i32 %b)226  %call = call {<4 x i32>, i32} @llvm.s390.vftcisb(<4 x float> %a, i32 %b)227  %res = extractvalue {<4 x i32>, i32} %call, 1228  ret i32 %res229}230 231declare <16 x i8> @llvm.s390.vfaeb(<16 x i8>, <16 x i8>, i32)232define <16 x i8> @test_vfaeb(<16 x i8> %a, <16 x i8> %b, i32 %c) {233  ; CHECK: immarg operand has non-immediate parameter234  ; CHECK-NEXT: i32 %c235  ; CHECK-NEXT: %res = call <16 x i8> @llvm.s390.vfaeb(<16 x i8> %a, <16 x i8> %b, i32 %c)236  %res = call <16 x i8> @llvm.s390.vfaeb(<16 x i8> %a, <16 x i8> %b, i32 %c)237  ret <16 x i8> %res238}239 240declare <8 x i16> @llvm.s390.vfaeh(<8 x i16>, <8 x i16>, i32)241define <8 x i16> @test_vfaeh(<8 x i16> %a, <8 x i16> %b, i32 %c) {242  ; CHECK: immarg operand has non-immediate parameter243  ; CHECK-NEXT: i32 %c244  ; CHECK-NEXT: %res = call <8 x i16> @llvm.s390.vfaeh(<8 x i16> %a, <8 x i16> %b, i32 %c)245  %res = call <8 x i16> @llvm.s390.vfaeh(<8 x i16> %a, <8 x i16> %b, i32 %c)246  ret <8 x i16> %res247}248 249declare <4 x i32> @llvm.s390.vfaef(<4 x i32>, <4 x i32>, i32)250define <4 x i32> @test_vfaef(<4 x i32> %a, <4 x i32> %b, i32 %c) {251  ; CHECK: immarg operand has non-immediate parameter252  ; CHECK-NEXT: i32 %c253  ; CHECK-NEXT: %res = call <4 x i32> @llvm.s390.vfaef(<4 x i32> %a, <4 x i32> %b, i32 %c)254  %res = call <4 x i32> @llvm.s390.vfaef(<4 x i32> %a, <4 x i32> %b, i32 %c)255  ret <4 x i32> %res256}257 258declare <16 x i8> @llvm.s390.vfaezb(<16 x i8>, <16 x i8>, i32)259define <16 x i8> @test_vfaezb(<16 x i8> %a, <16 x i8> %b, i32 %c) {260  ; CHECK: immarg operand has non-immediate parameter261  ; CHECK-NEXT: i32 %c262  ; CHECK-NEXT: %res = call <16 x i8> @llvm.s390.vfaezb(<16 x i8> %a, <16 x i8> %b, i32 %c)263  %res = call <16 x i8> @llvm.s390.vfaezb(<16 x i8> %a, <16 x i8> %b, i32 %c)264  ret <16 x i8> %res265}266 267declare <8 x i16> @llvm.s390.vfaezh(<8 x i16>, <8 x i16>, i32)268define <8 x i16> @test_vfaezh(<8 x i16> %a, <8 x i16> %b, i32 %c) {269  ; CHECK: immarg operand has non-immediate parameter270  ; CHECK-NEXT: i32 %c271  ; CHECK-NEXT: %res = call <8 x i16> @llvm.s390.vfaezh(<8 x i16> %a, <8 x i16> %b, i32 %c)272  %res = call <8 x i16> @llvm.s390.vfaezh(<8 x i16> %a, <8 x i16> %b, i32 %c)273  ret <8 x i16> %res274}275 276declare <4 x i32> @llvm.s390.vfaezf(<4 x i32>, <4 x i32>, i32)277define <4 x i32> @test_vfaezf(<4 x i32> %a, <4 x i32> %b, i32 %c) {278  ; CHECK: immarg operand has non-immediate parameter279  ; CHECK-NEXT: i32 %c280  ; CHECK-NEXT: %res = call <4 x i32> @llvm.s390.vfaezf(<4 x i32> %a, <4 x i32> %b, i32 %c)281  %res = call <4 x i32> @llvm.s390.vfaezf(<4 x i32> %a, <4 x i32> %b, i32 %c)282  ret <4 x i32> %res283}284 285declare { <16 x i8>, i32 } @llvm.s390.vfaebs(<16 x i8>, <16 x i8>, i32)286define { <16 x i8>, i32 } @test_vfaebs(<16 x i8> %a, <16 x i8> %b, i32 %c) {287  ; CHECK: immarg operand has non-immediate parameter288  ; CHECK-NEXT: i32 %c289  ; CHECK-NEXT: %res = call { <16 x i8>, i32 } @llvm.s390.vfaebs(<16 x i8> %a, <16 x i8> %b, i32 %c)290  %res = call { <16 x i8>, i32 } @llvm.s390.vfaebs(<16 x i8> %a, <16 x i8> %b, i32 %c)291  ret { <16 x i8>, i32 } %res292}293 294declare { <8 x i16>, i32 } @llvm.s390.vfaehs(<8 x i16>, <8 x i16>, i32)295define { <8 x i16>, i32 } @test_vfaehs(<8 x i16> %a, <8 x i16> %b, i32 %c) {296  ; CHECK: immarg operand has non-immediate parameter297  ; CHECK-NEXT: i32 %c298  ; CHECK-NEXT: %res = call { <8 x i16>, i32 } @llvm.s390.vfaehs(<8 x i16> %a, <8 x i16> %b, i32 %c)299  %res = call { <8 x i16>, i32 } @llvm.s390.vfaehs(<8 x i16> %a, <8 x i16> %b, i32 %c)300  ret { <8 x i16>, i32 } %res301}302 303declare { <4 x i32>, i32 } @llvm.s390.vfaefs(<4 x i32>, <4 x i32>, i32)304define { <4 x i32>, i32 } @test_vfaefs(<4 x i32> %a, <4 x i32> %b, i32 %c) {305  ; CHECK: immarg operand has non-immediate parameter306  ; CHECK-NEXT: i32 %c307  ; CHECK-NEXT: %res = call { <4 x i32>, i32 } @llvm.s390.vfaefs(<4 x i32> %a, <4 x i32> %b, i32 %c)308  %res = call { <4 x i32>, i32 } @llvm.s390.vfaefs(<4 x i32> %a, <4 x i32> %b, i32 %c)309  ret { <4 x i32>, i32 } %res310}311 312declare { <16 x i8>, i32 } @llvm.s390.vfaezbs(<16 x i8>, <16 x i8>, i32)313define { <16 x i8>, i32 } @test_vfaezbs(<16 x i8> %a, <16 x i8> %b, i32 %c) {314  ; CHECK: immarg operand has non-immediate parameter315  ; CHECK-NEXT: i32 %c316  ; CHECK-NEXT: %res = call { <16 x i8>, i32 } @llvm.s390.vfaezbs(<16 x i8> %a, <16 x i8> %b, i32 %c)317  %res = call { <16 x i8>, i32 } @llvm.s390.vfaezbs(<16 x i8> %a, <16 x i8> %b, i32 %c)318  ret { <16 x i8>, i32 } %res319}320 321declare { <8 x i16>, i32 } @llvm.s390.vfaezhs(<8 x i16>, <8 x i16>, i32)322define { <8 x i16>, i32 } @test_vfaezhs(<8 x i16> %a, <8 x i16> %b, i32 %c) {323  ; CHECK: immarg operand has non-immediate parameter324  ; CHECK-NEXT: i32 %c325  ; CHECK-NEXT: %res = call { <8 x i16>, i32 } @llvm.s390.vfaezhs(<8 x i16> %a, <8 x i16> %b, i32 %c)326  %res = call { <8 x i16>, i32 } @llvm.s390.vfaezhs(<8 x i16> %a, <8 x i16> %b, i32 %c)327  ret { <8 x i16>, i32 } %res328}329 330declare { <4 x i32>, i32 } @llvm.s390.vfaezfs(<4 x i32>, <4 x i32>, i32)331define { <4 x i32>, i32 } @test_vfaezfs(<4 x i32> %a, <4 x i32> %b, i32 %c) {332  ; CHECK: immarg operand has non-immediate parameter333  ; CHECK-NEXT: i32 %c334  ; CHECK-NEXT: %res = call { <4 x i32>, i32 } @llvm.s390.vfaezfs(<4 x i32> %a, <4 x i32> %b, i32 %c)335  %res = call { <4 x i32>, i32 } @llvm.s390.vfaezfs(<4 x i32> %a, <4 x i32> %b, i32 %c)336  ret { <4 x i32>, i32 } %res337}338 339declare i32 @llvm.s390.lcbb(ptr, i32)340define i32 @test_lcbb(ptr %a, i32 %b) {341  ; CHECK: immarg operand has non-immediate parameter342  ; CHECK-NEXT: i32 %b343  ; CHECK-NEXT: %res = call i32 @llvm.s390.lcbb(ptr %a, i32 %b)344  %res = call i32 @llvm.s390.lcbb(ptr %a, i32 %b)345  ret i32 %res346}347 348declare <16 x i8> @llvm.s390.vlbb(ptr, i32)349define <16 x i8> @test_vlbb(ptr %a, i32 %b) {350  ; CHECK: immarg operand has non-immediate parameter351  ; CHECK-NEXT: i32 %b352  ; CHECK-NEXT: %res = call <16 x i8> @llvm.s390.vlbb(ptr %a, i32 %b)353  %res = call <16 x i8> @llvm.s390.vlbb(ptr %a, i32 %b)354  ret <16 x i8> %res355}356 357declare <2 x i64> @llvm.s390.vpdi(<2 x i64>, <2 x i64>, i32)358define <2 x i64> @test_vpdi(<2 x i64> %a, <2 x i64> %b, i32 %c) {359  ; CHECK: immarg operand has non-immediate parameter360  ; CHECK-NEXT: i32 %c361  ; CHECK-NEXT: %res = call <2 x i64> @llvm.s390.vpdi(<2 x i64> %a, <2 x i64> %b, i32 %c)362  %res = call <2 x i64> @llvm.s390.vpdi(<2 x i64> %a, <2 x i64> %b, i32 %c)363  ret <2 x i64> %res364}365 366declare i128 @llvm.s390.vmslg(<2 x i64>, <2 x i64>, i128, i32)367define i128 @test_vmslg(<2 x i64> %a, <2 x i64> %b, i128 %c, i32 %d) {368  ; CHECK: immarg operand has non-immediate parameter369  ; CHECK-NEXT: i32 %d370  ; CHECK-NEXT: %res = call i128 @llvm.s390.vmslg(<2 x i64> %a, <2 x i64> %b, i128 %c, i32 %d)371  %res = call i128 @llvm.s390.vmslg(<2 x i64> %a, <2 x i64> %b, i128 %c, i32 %d)372  ret i128 %res373}374 375declare <16 x i8> @llvm.s390.vsldb(<16 x i8>, <16 x i8>, i32)376define <16 x i8> @test_vsldb(<16 x i8> %a, <16 x i8> %b, i32 %c) {377  ; CHECK: immarg operand has non-immediate parameter378  ; CHECK-NEXT: i32 %c379  ; CHECK-NEXT: %res = call <16 x i8> @llvm.s390.vsldb(<16 x i8> %a, <16 x i8> %b, i32 %c)380  %res = call <16 x i8> @llvm.s390.vsldb(<16 x i8> %a, <16 x i8> %b, i32 %c)381  ret <16 x i8> %res382}383 384declare <16 x i8> @llvm.s390.vsld(<16 x i8>, <16 x i8>, i32)385define <16 x i8> @test_vsld(<16 x i8> %a, <16 x i8> %b, i32 %c) {386  ; CHECK: immarg operand has non-immediate parameter387  ; CHECK-NEXT: i32 %c388  ; CHECK-NEXT: %res = call <16 x i8> @llvm.s390.vsld(<16 x i8> %a, <16 x i8> %b, i32 %c)389  %res = call <16 x i8> @llvm.s390.vsld(<16 x i8> %a, <16 x i8> %b, i32 %c)390  ret <16 x i8> %res391}392 393declare <16 x i8> @llvm.s390.vsrd(<16 x i8>, <16 x i8>, i32)394define <16 x i8> @test_vsrd(<16 x i8> %a, <16 x i8> %b, i32 %c) {395  ; CHECK: immarg operand has non-immediate parameter396  ; CHECK-NEXT: i32 %c397  ; CHECK-NEXT: %res = call <16 x i8> @llvm.s390.vsrd(<16 x i8> %a, <16 x i8> %b, i32 %c)398  %res = call <16 x i8> @llvm.s390.vsrd(<16 x i8> %a, <16 x i8> %b, i32 %c)399  ret <16 x i8> %res400}401 402