diff options
author | Anastasis Grammenos <anastasis.gramm2@gmail.com> | 2018-07-04 09:55:46 +0000 |
---|---|---|
committer | Anastasis Grammenos <anastasis.gramm2@gmail.com> | 2018-07-04 09:55:46 +0000 |
commit | 509d79789f1206dd8170f737d34f3cf5cc6076ac (patch) | |
tree | 9e48e7c2b5e308874af8382333c4508c379532ba /llvm/test | |
parent | d68f25568645ad56b989d6825bdef63d9c21c0c5 (diff) | |
download | bcm5719-llvm-509d79789f1206dd8170f737d34f3cf5cc6076ac.tar.gz bcm5719-llvm-509d79789f1206dd8170f737d34f3cf5cc6076ac.zip |
[DebugInfo][InstCombine] Preserve DI after combining zext
When zext is EvaluatedInDifferentType, InstCombine
drops the dbg.value intrinsic. This patch tries to
preserve said DI, by inserting the zext's old DI in the
resulting instruction. (Only for integer type for now)
Differential Revision: https://reviews.llvm.org/D48331
llvm-svn: 336254
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/Transforms/InstCombine/cast-mul-select.ll | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/llvm/test/Transforms/InstCombine/cast-mul-select.ll b/llvm/test/Transforms/InstCombine/cast-mul-select.ll index 3e874874303..a59d954dac7 100644 --- a/llvm/test/Transforms/InstCombine/cast-mul-select.ll +++ b/llvm/test/Transforms/InstCombine/cast-mul-select.ll @@ -1,5 +1,5 @@ -; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt < %s -instcombine -S | FileCheck %s +; RUN: opt -debugify -instcombine -S < %s | FileCheck %s -check-prefix DBGINFO target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32" @@ -8,7 +8,16 @@ define i32 @mul(i32 %x, i32 %y) { ; CHECK-NEXT: [[C:%.*]] = mul i32 [[X:%.*]], [[Y:%.*]] ; CHECK-NEXT: [[D:%.*]] = and i32 [[C]], 255 ; CHECK-NEXT: ret i32 [[D]] -; + +; Test that when zext is evaluated in different type +; we preserve the debug information in the resulting +; instruction. +; DBGINFO-LABEL: @mul( +; DBGINFO-NEXT: [[C:%.*]] = mul i32 {{.*}} +; DBGINFO-NEXT: call void @llvm.dbg.value(metadata i32 [[C]] +; DBGINFO-NEXT: [[D:%.*]] = and i32 {{.*}} +; DBGINFO-NEXT: call void @llvm.dbg.value(metadata i32 [[D]] + %A = trunc i32 %x to i8 %B = trunc i32 %y to i8 %C = mul i8 %A, %B |