[llvm] r363409 - [CodeGenPrepare] propagate debuginfo when copying a shuffle
Sanjay Patel via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 14 08:05:35 PDT 2019
Author: spatel
Date: Fri Jun 14 08:05:35 2019
New Revision: 363409
URL: http://llvm.org/viewvc/llvm-project?rev=363409&view=rev
Log:
[CodeGenPrepare] propagate debuginfo when copying a shuffle
Modified:
llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp
llvm/trunk/test/Transforms/CodeGenPrepare/X86/vec-shift.ll
Modified: llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp?rev=363409&r1=363408&r2=363409&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp (original)
+++ llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp Fri Jun 14 08:05:35 2019
@@ -6138,6 +6138,7 @@ bool CodeGenPrepare::optimizeShuffleVect
InsertedShuffle =
new ShuffleVectorInst(SVI->getOperand(0), SVI->getOperand(1),
SVI->getOperand(2), "", &*InsertPt);
+ InsertedShuffle->setDebugLoc(SVI->getDebugLoc());
}
UI->replaceUsesOfWith(SVI, InsertedShuffle);
Modified: llvm/trunk/test/Transforms/CodeGenPrepare/X86/vec-shift.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/CodeGenPrepare/X86/vec-shift.ll?rev=363409&r1=363408&r2=363409&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/CodeGenPrepare/X86/vec-shift.ll (original)
+++ llvm/trunk/test/Transforms/CodeGenPrepare/X86/vec-shift.ll Fri Jun 14 08:05:35 2019
@@ -1,6 +1,22 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -codegenprepare -mtriple=x86_64-- -mattr=avx -S < %s | FileCheck %s --check-prefixes=ALL,AVX
; RUN: opt -codegenprepare -mtriple=x86_64-- -mattr=avx2 -S < %s | FileCheck %s --check-prefixes=ALL,AVX2
+; RUN: opt -codegenprepare -mtriple=x86_64-- -mattr=avx -S -enable-debugify < %s 2>&1 | FileCheck %s -check-prefix=DEBUG
+
+define <4 x i32> @vector_variable_shift_right(<4 x i1> %cond, <4 x i32> %x, <4 x i32> %y, <4 x i32> %z) {
+; ALL-LABEL: @vector_variable_shift_right(
+; ALL-NEXT: [[SPLAT1:%.*]] = shufflevector <4 x i32> [[X:%.*]], <4 x i32> undef, <4 x i32> zeroinitializer
+; ALL-NEXT: [[SPLAT2:%.*]] = shufflevector <4 x i32> [[Y:%.*]], <4 x i32> undef, <4 x i32> zeroinitializer
+; ALL-NEXT: [[SEL:%.*]] = select <4 x i1> [[COND:%.*]], <4 x i32> [[SPLAT1]], <4 x i32> [[SPLAT2]]
+; ALL-NEXT: [[SH:%.*]] = lshr <4 x i32> [[Z:%.*]], [[SEL]]
+; ALL-NEXT: ret <4 x i32> [[SH]]
+;
+ %splat1 = shufflevector <4 x i32> %x, <4 x i32> undef, <4 x i32> zeroinitializer
+ %splat2 = shufflevector <4 x i32> %y, <4 x i32> undef, <4 x i32> zeroinitializer
+ %sel = select <4 x i1> %cond, <4 x i32> %splat1, <4 x i32> %splat2
+ %sh = lshr <4 x i32> %z, %sel
+ ret <4 x i32> %sh
+}
; PR37428 - https://bugs.llvm.org/show_bug.cgi?id=37428
@@ -101,17 +117,5 @@ exit:
ret void
}
-define <4 x i32> @vector_variable_shift_right(<4 x i1> %cond, <4 x i32> %x, <4 x i32> %y, <4 x i32> %z) {
-; ALL-LABEL: @vector_variable_shift_right(
-; ALL-NEXT: [[SPLAT1:%.*]] = shufflevector <4 x i32> [[X:%.*]], <4 x i32> undef, <4 x i32> zeroinitializer
-; ALL-NEXT: [[SPLAT2:%.*]] = shufflevector <4 x i32> [[Y:%.*]], <4 x i32> undef, <4 x i32> zeroinitializer
-; ALL-NEXT: [[SEL:%.*]] = select <4 x i1> [[COND:%.*]], <4 x i32> [[SPLAT1]], <4 x i32> [[SPLAT2]]
-; ALL-NEXT: [[SH:%.*]] = lshr <4 x i32> [[Z:%.*]], [[SEL]]
-; ALL-NEXT: ret <4 x i32> [[SH]]
-;
- %splat1 = shufflevector <4 x i32> %x, <4 x i32> undef, <4 x i32> zeroinitializer
- %splat2 = shufflevector <4 x i32> %y, <4 x i32> undef, <4 x i32> zeroinitializer
- %sel = select <4 x i1> %cond, <4 x i32> %splat1, <4 x i32> %splat2
- %sh = lshr <4 x i32> %z, %sel
- ret <4 x i32> %sh
-}
+; Check that every instruction inserted by -codegenprepare has a debug location.
+; DEBUG: CheckModuleDebugify: PASS
More information about the llvm-commits
mailing list