1; RUN: llc -march=hexagon < %s 2; REQUIRES: asserts 3; Used to fail with "Cannot BITCAST between types of different sizes!" 4 5target datalayout = "e-p:32:32:32-i64:64:64-i32:32:32-i16:16:16-i1:32:32-f64:64:64-f32:32:32-v64:64:64-v32:32:32-a0:0-n16:32" 6target triple = "hexagon" 7 8define void @foo() nounwind { 9entry: 10 br label %while.body 11 12while.body: ; preds = %if.then155, %if.then12, %if.then, %entry 13 br i1 undef, label %if.then, label %if.else 14 15if.then: ; preds = %while.body 16 br label %while.body 17 18if.else: ; preds = %while.body 19 br i1 undef, label %if.then12, label %if.else17 20 21if.then12: ; preds = %if.else 22 br label %while.body 23 24if.else17: ; preds = %if.else 25 br i1 false, label %if.then22, label %if.else35 26 27if.then22: ; preds = %if.else17 28 unreachable 29 30if.else35: ; preds = %if.else17 31 br i1 false, label %if.then40, label %if.else83 32 33if.then40: ; preds = %if.else35 34 unreachable 35 36if.else83: ; preds = %if.else35 37 br i1 false, label %if.then88, label %if.else150 38 39if.then88: ; preds = %if.else83 40 unreachable 41 42if.else150: ; preds = %if.else83 43 %cmp154 = icmp eq i32 undef, 0 44 br i1 %cmp154, label %if.then155, label %if.else208 45 46if.then155: ; preds = %if.else150 47 %_p_splat.1 = shufflevector <1 x i16> zeroinitializer, <1 x i16> undef, <2 x i32> zeroinitializer 48 %0 = sext <2 x i16> %_p_splat.1 to <2 x i32> 49 %mul198p_vec.1 = mul <2 x i32> %0, <i32 4, i32 4> 50 %1 = extractelement <2 x i32> %mul198p_vec.1, i32 0 51 store i32 %1, i32* undef, align 4 52 br label %while.body 53 54if.else208: ; preds = %if.else150 55 unreachable 56} 57