; RUN: opt -hexagon-vlcr < %s -S | FileCheck %s ; Test that reuse doesn't occur due to two shufflevectors with different masks. ; CHECK-NOT: extract.h.hexagon.vlcr define dso_local void @test() local_unnamed_addr #0 { entry: %0 = tail call <64 x i32> @llvm.hexagon.V6.vunpackuh.128B(<32 x i32> undef) br i1 undef, label %for.end, label %for.body for.body: %a = phi <64 x i32> [ %1, %for.body ], [ %0, %entry ] %extract.h = shufflevector <64 x i32> %a, <64 x i32> undef, <32 x i32> %1 = tail call <64 x i32> @llvm.hexagon.V6.vaddw.dv.128B(<64 x i32> undef, <64 x i32> undef) %extract.l = shufflevector <64 x i32> %1, <64 x i32> undef, <32 x i32> br label %for.body for.end: ret void } declare <64 x i32> @llvm.hexagon.V6.vunpackuh.128B(<32 x i32>) #1 declare <64 x i32> @llvm.hexagon.V6.vaddw.dv.128B(<64 x i32>, <64 x i32>) #1 attributes #0 = { "use-soft-float"="false" } attributes #1 = { nounwind readnone }