1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg0() 5*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg1() 6*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg2() 7*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg3() 8*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg4() 9*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg5() 10*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg6() 11*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg7() 12*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg8() 13*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg9() 14*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg10() 15*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg11() 16*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg12() 17*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg13() 18*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg14() 19*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg15() 20*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg16() 21*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg17() 22*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg18() 23*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg19() 24*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg20() 25*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg21() 26*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg22() 27*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg23() 28*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg24() 29*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg25() 30*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg26() 31*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg27() 32*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg28() 33*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg29() 34*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg30() 35*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.nvvm.read.ptx.sreg.envreg31() 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Worker; CHECK: foo 39*9880d681SAndroid Build Coastguard Workerdefine i32 @foo() { 40*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg0 41*9880d681SAndroid Build Coastguard Worker %val0 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg0() 42*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg1 43*9880d681SAndroid Build Coastguard Worker %val1 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg1() 44*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg2 45*9880d681SAndroid Build Coastguard Worker %val2 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg2() 46*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg3 47*9880d681SAndroid Build Coastguard Worker %val3 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg3() 48*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg4 49*9880d681SAndroid Build Coastguard Worker %val4 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg4() 50*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg5 51*9880d681SAndroid Build Coastguard Worker %val5 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg5() 52*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg6 53*9880d681SAndroid Build Coastguard Worker %val6 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg6() 54*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg7 55*9880d681SAndroid Build Coastguard Worker %val7 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg7() 56*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg8 57*9880d681SAndroid Build Coastguard Worker %val8 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg8() 58*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg9 59*9880d681SAndroid Build Coastguard Worker %val9 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg9() 60*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg10 61*9880d681SAndroid Build Coastguard Worker %val10 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg10() 62*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg11 63*9880d681SAndroid Build Coastguard Worker %val11 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg11() 64*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg12 65*9880d681SAndroid Build Coastguard Worker %val12 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg12() 66*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg13 67*9880d681SAndroid Build Coastguard Worker %val13 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg13() 68*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg14 69*9880d681SAndroid Build Coastguard Worker %val14 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg14() 70*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg15 71*9880d681SAndroid Build Coastguard Worker %val15 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg15() 72*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg16 73*9880d681SAndroid Build Coastguard Worker %val16 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg16() 74*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg17 75*9880d681SAndroid Build Coastguard Worker %val17 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg17() 76*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg18 77*9880d681SAndroid Build Coastguard Worker %val18 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg18() 78*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg19 79*9880d681SAndroid Build Coastguard Worker %val19 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg19() 80*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg20 81*9880d681SAndroid Build Coastguard Worker %val20 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg20() 82*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg21 83*9880d681SAndroid Build Coastguard Worker %val21 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg21() 84*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg22 85*9880d681SAndroid Build Coastguard Worker %val22 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg22() 86*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg23 87*9880d681SAndroid Build Coastguard Worker %val23 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg23() 88*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg24 89*9880d681SAndroid Build Coastguard Worker %val24 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg24() 90*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg25 91*9880d681SAndroid Build Coastguard Worker %val25 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg25() 92*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg26 93*9880d681SAndroid Build Coastguard Worker %val26 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg26() 94*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg27 95*9880d681SAndroid Build Coastguard Worker %val27 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg27() 96*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg28 97*9880d681SAndroid Build Coastguard Worker %val28 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg28() 98*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg29 99*9880d681SAndroid Build Coastguard Worker %val29 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg29() 100*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg30 101*9880d681SAndroid Build Coastguard Worker %val30 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg30() 102*9880d681SAndroid Build Coastguard Worker; CHECK: mov.b32 %r{{[0-9]+}}, %envreg31 103*9880d681SAndroid Build Coastguard Worker %val31 = tail call i32 @llvm.nvvm.read.ptx.sreg.envreg31() 104*9880d681SAndroid Build Coastguard Worker 105*9880d681SAndroid Build Coastguard Worker 106*9880d681SAndroid Build Coastguard Worker %ret0 = add i32 %val0, %val1 107*9880d681SAndroid Build Coastguard Worker %ret1 = add i32 %ret0, %val2 108*9880d681SAndroid Build Coastguard Worker %ret2 = add i32 %ret1, %val3 109*9880d681SAndroid Build Coastguard Worker %ret3 = add i32 %ret2, %val4 110*9880d681SAndroid Build Coastguard Worker %ret4 = add i32 %ret3, %val5 111*9880d681SAndroid Build Coastguard Worker %ret5 = add i32 %ret4, %val6 112*9880d681SAndroid Build Coastguard Worker %ret6 = add i32 %ret5, %val7 113*9880d681SAndroid Build Coastguard Worker %ret7 = add i32 %ret6, %val8 114*9880d681SAndroid Build Coastguard Worker %ret8 = add i32 %ret7, %val9 115*9880d681SAndroid Build Coastguard Worker %ret9 = add i32 %ret8, %val10 116*9880d681SAndroid Build Coastguard Worker %ret10 = add i32 %ret9, %val11 117*9880d681SAndroid Build Coastguard Worker %ret11 = add i32 %ret10, %val12 118*9880d681SAndroid Build Coastguard Worker %ret12 = add i32 %ret11, %val13 119*9880d681SAndroid Build Coastguard Worker %ret13 = add i32 %ret12, %val14 120*9880d681SAndroid Build Coastguard Worker %ret14 = add i32 %ret13, %val15 121*9880d681SAndroid Build Coastguard Worker %ret15 = add i32 %ret14, %val16 122*9880d681SAndroid Build Coastguard Worker %ret16 = add i32 %ret15, %val17 123*9880d681SAndroid Build Coastguard Worker %ret17 = add i32 %ret16, %val18 124*9880d681SAndroid Build Coastguard Worker %ret18 = add i32 %ret17, %val19 125*9880d681SAndroid Build Coastguard Worker %ret19 = add i32 %ret18, %val20 126*9880d681SAndroid Build Coastguard Worker %ret20 = add i32 %ret19, %val21 127*9880d681SAndroid Build Coastguard Worker %ret21 = add i32 %ret20, %val22 128*9880d681SAndroid Build Coastguard Worker %ret22 = add i32 %ret21, %val23 129*9880d681SAndroid Build Coastguard Worker %ret23 = add i32 %ret22, %val24 130*9880d681SAndroid Build Coastguard Worker %ret24 = add i32 %ret23, %val25 131*9880d681SAndroid Build Coastguard Worker %ret25 = add i32 %ret24, %val26 132*9880d681SAndroid Build Coastguard Worker %ret26 = add i32 %ret25, %val27 133*9880d681SAndroid Build Coastguard Worker %ret27 = add i32 %ret26, %val28 134*9880d681SAndroid Build Coastguard Worker %ret28 = add i32 %ret27, %val29 135*9880d681SAndroid Build Coastguard Worker %ret29 = add i32 %ret28, %val30 136*9880d681SAndroid Build Coastguard Worker %ret30 = add i32 %ret29, %val31 137*9880d681SAndroid Build Coastguard Worker 138*9880d681SAndroid Build Coastguard Worker ret i32 %ret30 139*9880d681SAndroid Build Coastguard Worker} 140