1; RUN: llc -march=hexagon < %s | FileCheck %s 2 3; Check that this does not crash. 4; CHECK: vmem 5 6target datalayout = "e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32:32-i16:16:16-i1:8:8-f32:32:32-f64:64:64-v32:32:32-v64:64:64-v512:512:512-v1024:1024:1024-v2048:2048:2048" 7target triple = "hexagon" 8 9define dso_local void @f0() local_unnamed_addr #0 { 10b0: 11 %v0 = load i32, i32* undef, align 4 12 %v1 = select i1 undef, i32 0, i32 1073741823 13 %v2 = shl i32 %v1, 0 14 %v3 = sext i32 %v0 to i64 15 %v4 = sext i32 %v2 to i64 16 %v5 = mul nsw i64 %v4, %v3 17 %v6 = lshr i64 %v5, 32 18 %v7 = trunc i64 %v6 to i32 19 %v8 = sext i32 %v7 to i64 20 %v9 = insertelement <32 x i64> undef, i64 %v8, i32 0 21 %v10 = shufflevector <32 x i64> %v9, <32 x i64> undef, <32 x i32> zeroinitializer 22 %v11 = getelementptr i32, i32* null, i32 32 23 %v12 = bitcast i32* %v11 to <32 x i32>* 24 %v13 = load <32 x i32>, <32 x i32>* %v12, align 4 25 %v14 = shl <32 x i32> %v13, zeroinitializer 26 %v15 = sext <32 x i32> %v14 to <32 x i64> 27 %v16 = mul nsw <32 x i64> %v10, %v15 28 %v17 = lshr <32 x i64> %v16, <i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32, i64 32> 29 %v18 = trunc <32 x i64> %v17 to <32 x i32> 30 store <32 x i32> %v18, <32 x i32>* %v12, align 4 31 ret void 32} 33 34attributes #0 = { "target-features"="+hvx-length128b,+hvxv67,+v67,-long-calls" } 35