1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=hexagon < %s 2*9880d681SAndroid Build Coastguard Worker; Used to fail with "Cannot select: 0x16cf370: v2i16,ch = load" 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; ModuleID = 'bugpoint-reduced-simplified.bc' 5*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:32:32:32-i64:64:64-i32:32:32-i16:16:16-i1:32:32-f64:64:64-f32:32:32-a0:0-n32" 6*9880d681SAndroid Build Coastguard Workertarget triple = "hexagon-unknown-linux-gnu" 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker%struct.ext_hdrs.10.65.142.274.307.318.329.681.692.703.714.725.736.758.791.802.846.857.868.879.890.901.945.956.958 = type { i8, i8, i8, i8, i8, i8, i16, i32, [8 x %struct.hcdc_ext_vec.9.64.141.273.306.317.328.680.691.702.713.724.735.757.790.801.845.856.867.878.889.900.944.955.957] } 9*9880d681SAndroid Build Coastguard Worker%struct.hcdc_ext_vec.9.64.141.273.306.317.328.680.691.702.713.724.735.757.790.801.845.856.867.878.889.900.944.955.957 = type { i8, i8, i16 } 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerdefine void @foo(%struct.ext_hdrs.10.65.142.274.307.318.329.681.692.703.714.725.736.758.791.802.846.857.868.879.890.901.945.956.958* %hc_ext_info) nounwind { 12*9880d681SAndroid Build Coastguard Workerentry: 13*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.end, label %if.then 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerif.then: ; preds = %entry 16*9880d681SAndroid Build Coastguard Worker unreachable 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Workerif.end: ; preds = %entry 19*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.end5, label %if.then3 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerif.then3: ; preds = %if.end 22*9880d681SAndroid Build Coastguard Worker br label %if.end5 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Workerif.end5: ; preds = %if.then3, %if.end 25*9880d681SAndroid Build Coastguard Worker %add.ptr = getelementptr inbounds %struct.ext_hdrs.10.65.142.274.307.318.329.681.692.703.714.725.736.758.791.802.846.857.868.879.890.901.945.956.958, %struct.ext_hdrs.10.65.142.274.307.318.329.681.692.703.714.725.736.758.791.802.846.857.868.879.890.901.945.956.958* %hc_ext_info, i32 0, i32 8, i32 0 26*9880d681SAndroid Build Coastguard Worker %add.ptr22 = getelementptr inbounds %struct.ext_hdrs.10.65.142.274.307.318.329.681.692.703.714.725.736.758.791.802.846.857.868.879.890.901.945.956.958, %struct.ext_hdrs.10.65.142.274.307.318.329.681.692.703.714.725.736.758.791.802.846.857.868.879.890.901.945.956.958* null, i32 0, i32 8, i32 undef 27*9880d681SAndroid Build Coastguard Worker br label %while.cond 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Workerwhile.cond: ; preds = %if.end419, %if.end5 30*9880d681SAndroid Build Coastguard Worker %gre_chksum.0 = phi <2 x i8> [ undef, %if.end5 ], [ %gre_chksum.2, %if.end419 ] 31*9880d681SAndroid Build Coastguard Worker %cmp23 = icmp ult %struct.hcdc_ext_vec.9.64.141.273.306.317.328.680.691.702.713.724.735.757.790.801.845.856.867.878.889.900.944.955.957* null, %add.ptr 32*9880d681SAndroid Build Coastguard Worker %cmp25 = icmp ult %struct.hcdc_ext_vec.9.64.141.273.306.317.328.680.691.702.713.724.735.757.790.801.845.856.867.878.889.900.944.955.957* null, %add.ptr22 33*9880d681SAndroid Build Coastguard Worker %sel1 = and i1 %cmp23, %cmp25 34*9880d681SAndroid Build Coastguard Worker br i1 %sel1, label %while.body, label %while.end422 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Workerwhile.body: ; preds = %while.cond 37*9880d681SAndroid Build Coastguard Worker switch i8 undef, label %if.end419 [ 38*9880d681SAndroid Build Coastguard Worker i8 5, label %if.then70 39*9880d681SAndroid Build Coastguard Worker i8 3, label %if.then70 40*9880d681SAndroid Build Coastguard Worker i8 2, label %if.then70 41*9880d681SAndroid Build Coastguard Worker i8 1, label %if.then70 42*9880d681SAndroid Build Coastguard Worker i8 0, label %if.then70 43*9880d681SAndroid Build Coastguard Worker i8 4, label %if.then93 44*9880d681SAndroid Build Coastguard Worker i8 6, label %if.then195 45*9880d681SAndroid Build Coastguard Worker ] 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Workerif.then70: ; preds = %while.body, %while.body, %while.body, %while.body, %while.body 48*9880d681SAndroid Build Coastguard Worker unreachable 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Workerif.then93: ; preds = %while.body 51*9880d681SAndroid Build Coastguard Worker unreachable 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Workerif.then195: ; preds = %while.body 54*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.end274, label %if.then202 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Workerif.then202: ; preds = %if.then195 57*9880d681SAndroid Build Coastguard Worker br label %while.body222 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Workerwhile.body222: ; preds = %while.body222, %if.then202 60*9880d681SAndroid Build Coastguard Worker br i1 undef, label %if.end240, label %while.body222 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Workerif.end240: ; preds = %while.body222 63*9880d681SAndroid Build Coastguard Worker %_p_vec_full100 = load <2 x i8>, <2 x i8>* undef, align 8 64*9880d681SAndroid Build Coastguard Worker br label %if.end274 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Workerif.end274: ; preds = %if.end240, %if.then195 67*9880d681SAndroid Build Coastguard Worker %gre_chksum.1 = phi <2 x i8> [ %gre_chksum.0, %if.then195 ], [ %_p_vec_full100, %if.end240 ] 68*9880d681SAndroid Build Coastguard Worker br label %if.end419 69*9880d681SAndroid Build Coastguard Worker 70*9880d681SAndroid Build Coastguard Workerif.end419: ; preds = %if.end274, %while.body 71*9880d681SAndroid Build Coastguard Worker %gre_chksum.2 = phi <2 x i8> [ %gre_chksum.0, %while.body ], [ %gre_chksum.1, %if.end274 ] 72*9880d681SAndroid Build Coastguard Worker br label %while.cond 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Workerwhile.end422: ; preds = %while.cond 75*9880d681SAndroid Build Coastguard Worker ret void 76*9880d681SAndroid Build Coastguard Worker} 77