From f54d0dea8faa11fbae4cf7d6505414564f4ddfa9 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 14 May 2002 19:56:14 +0000 Subject: [PATCH] New testcase git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2628 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/GCSE/2002-05-14-OperandSwap.ll | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 test/Transforms/GCSE/2002-05-14-OperandSwap.ll diff --git a/test/Transforms/GCSE/2002-05-14-OperandSwap.ll b/test/Transforms/GCSE/2002-05-14-OperandSwap.ll new file mode 100644 index 00000000000..a75e298f7fa --- /dev/null +++ b/test/Transforms/GCSE/2002-05-14-OperandSwap.ll @@ -0,0 +1,18 @@ +; This entire chain of computation should be optimized away, but +; wasn't because the two multiplies were not detected as being identical. +; +; RUN: if as < %s | opt -gcse -instcombine -dce | dis | grep sub +; RUN: then exit 1 +; RUN: else exit 0 +; RUN: fi + +implementation ; Functions: + +uint "vnum_test4"(uint* %data) { + %reg1101 = load uint* %data, uint 1 + %reg1111 = load uint* %data, uint 3 + %reg109 = mul uint %reg1101, %reg1111 + %reg108 = mul uint %reg1111, %reg1101 + %reg121 = sub uint %reg108, %reg109 + ret uint %reg121 +} -- 2.34.1