diff options
| author | Sanjay Patel <spatel@rotateright.com> | 2018-01-29 22:50:08 +0000 |
|---|---|---|
| committer | Sanjay Patel <spatel@rotateright.com> | 2018-01-29 22:50:08 +0000 |
| commit | d023a9b7777407b9b23d5b2a319a3956beed52af (patch) | |
| tree | 94bafc1101e9efb3f362b52c6f7f2427046012fd /llvm/test/Transforms/DeadStoreElimination | |
| parent | b57da098e96892505bed3f0da54c3e67e4a4b25c (diff) | |
| download | bcm5719-llvm-d023a9b7777407b9b23d5b2a319a3956beed52af.tar.gz bcm5719-llvm-d023a9b7777407b9b23d5b2a319a3956beed52af.zip | |
[DSE] add test for PR36129; NFC
We can miscompile because we're not checking is the memory might
me modified between the seemingly redundant store ops.
llvm-svn: 323704
Diffstat (limited to 'llvm/test/Transforms/DeadStoreElimination')
| -rw-r--r-- | llvm/test/Transforms/DeadStoreElimination/merge-stores.ll | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/test/Transforms/DeadStoreElimination/merge-stores.ll b/llvm/test/Transforms/DeadStoreElimination/merge-stores.ll index ad1bc310878..6bac3b741be 100644 --- a/llvm/test/Transforms/DeadStoreElimination/merge-stores.ll +++ b/llvm/test/Transforms/DeadStoreElimination/merge-stores.ll @@ -186,6 +186,21 @@ define void @PR34074(i32* %x, i64* %y) { ret void } +; FIXME: We can't eliminate the last store because P and Q may alias. + +define void @PR36129(i32* %P, i32* %Q) { +; CHECK-LABEL: @PR36129( +; CHECK-NEXT: store i32 3, i32* [[P:%.*]] +; CHECK-NEXT: store i32 2, i32* [[Q:%.*]] +; CHECK-NEXT: ret void +; + store i32 1, i32* %P + %P2 = bitcast i32* %P to i8* + store i32 2, i32* %Q + store i8 3, i8* %P2 + ret void +} + !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 5.0.0 (trunk 306512)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2) !1 = !DIFile(filename: "me.cpp", directory: "/compiler-explorer") !2 = !{} |

