Home | History | Annotate | Download | only in vect
      1 ; RUN: llc -march=hexagon < %s
      2 ; REQUIRES: asserts
      3 ; Used to fail with "Cannot BITCAST between types of different sizes!"
      4 
      5 target 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"
      6 target triple = "hexagon"
      7 
      8 define void @foo() nounwind {
      9 entry:
     10   br label %while.body
     11 
     12 while.body:                                       ; preds = %if.then155, %if.then12, %if.then, %entry
     13   br i1 undef, label %if.then, label %if.else
     14 
     15 if.then:                                          ; preds = %while.body
     16   br label %while.body
     17 
     18 if.else:                                          ; preds = %while.body
     19   br i1 undef, label %if.then12, label %if.else17
     20 
     21 if.then12:                                        ; preds = %if.else
     22   br label %while.body
     23 
     24 if.else17:                                        ; preds = %if.else
     25   br i1 false, label %if.then22, label %if.else35
     26 
     27 if.then22:                                        ; preds = %if.else17
     28   unreachable
     29 
     30 if.else35:                                        ; preds = %if.else17
     31   br i1 false, label %if.then40, label %if.else83
     32 
     33 if.then40:                                        ; preds = %if.else35
     34   unreachable
     35 
     36 if.else83:                                        ; preds = %if.else35
     37   br i1 false, label %if.then88, label %if.else150
     38 
     39 if.then88:                                        ; preds = %if.else83
     40   unreachable
     41 
     42 if.else150:                                       ; preds = %if.else83
     43   %cmp154 = icmp eq i32 undef, 0
     44   br i1 %cmp154, label %if.then155, label %if.else208
     45 
     46 if.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 
     54 if.else208:                                       ; preds = %if.else150
     55   unreachable
     56 }
     57