66 lines · plain
1; RUN: llc -mtriple=hexagon < %s | FileCheck %s2 3; Check that this doesn't crash.4; CHECK: vmem5 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 9@g0 = external dllexport local_unnamed_addr global ptr, align 410@g1 = external dllexport local_unnamed_addr global ptr, align 411 12define dso_local fastcc void @f0(ptr %a0, i32 %a1) unnamed_addr #0 {13b0:14 %v0 = load ptr, ptr @g1, align 415 %v1 = tail call ptr %v0(i32 16, i32 %a1, i64 2400, i32 0, i32 32)16 br i1 poison, label %b2, label %b117 18b1: ; preds = %b019 %v2 = load <64 x i8>, ptr poison, align 6420 %v3 = zext <64 x i8> %v2 to <64 x i32>21 %v4 = load <128 x i8>, ptr poison, align 6422 %v5 = zext <128 x i8> %v4 to <128 x i32>23 %v6 = load <128 x i8>, ptr poison, align 6424 %v7 = zext <128 x i8> %v6 to <128 x i32>25 %v8 = getelementptr i8, ptr %a0, i32 57626 %v9 = getelementptr i8, ptr %v8, i32 -6427 %v10 = load <64 x i8>, ptr %v9, align 6428 %v11 = sext <64 x i8> %v10 to <64 x i32>29 %v12 = add nsw <64 x i32> %v11, <i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128>30 %v13 = mul nuw nsw <64 x i32> %v12, %v331 %v14 = extractelement <64 x i32> %v13, i32 032 store i32 %v14, ptr %v1, align 8, !tbaa !033 %v15 = getelementptr i8, ptr %v8, i32 38434 %v16 = load <128 x i8>, ptr %v15, align 64, !tbaa !335 %v17 = sext <128 x i8> %v16 to <128 x i32>36 %v18 = add nsw <128 x i32> %v17, <i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128>37 %v19 = mul nuw nsw <128 x i32> %v18, %v538 %v20 = getelementptr i8, ptr %v8, i32 25639 %v21 = load <128 x i8>, ptr %v20, align 64, !tbaa !340 %v22 = sext <128 x i8> %v21 to <128 x i32>41 %v23 = add nsw <128 x i32> %v22, <i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128>42 %v24 = mul nuw nsw <128 x i32> %v23, %v743 %v25 = add nsw <128 x i32> %v19, %v2444 %v26 = extractelement <128 x i32> %v25, i32 045 %v27 = insertelement <64 x i32> <i32 poison, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>, i32 %v26, i64 046 %v28 = extractelement <64 x i32> %v27, i32 047 %v29 = getelementptr i8, ptr %v1, i32 448 store i32 %v28, ptr %v29, align 449 %v30 = load ptr, ptr @g0, align 450 %v31 = call i32 %v30(ptr nonnull @f1, ptr nonnull poison, i32 0)51 unreachable52 53b2: ; preds = %b054 ret void55}56 57declare dso_local i32 @f1(i32, ptr, ptr) #058 59attributes #0 = { "target-features"="+hvxv68,+hvx-length128b,+hvx-qfloat,-hvx-ieee-fp" }60 61!0 = !{!1, !1, i64 0}62!1 = !{!"0x555e886c7bc0", !2, i64 0}63!2 = !{!"tvm-tbaa"}64!3 = !{!4, !4, i64 0}65!4 = !{!"0x555e88cb2ce0", !2, i64 0}66