From a434ae74e76ea4ef69c680156bdb36779babf105 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 6 Nov 2002 06:20:53 +0000 Subject: [PATCH] New testcases git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4563 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/DSAnalysis/badcases.ll | 20 ++++++++++++++++++++ test/Transforms/DSAnalysis/goodcases.ll | 21 +++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 test/Transforms/DSAnalysis/badcases.ll create mode 100644 test/Transforms/DSAnalysis/goodcases.ll diff --git a/test/Transforms/DSAnalysis/badcases.ll b/test/Transforms/DSAnalysis/badcases.ll new file mode 100644 index 00000000000..16284529dce --- /dev/null +++ b/test/Transforms/DSAnalysis/badcases.ll @@ -0,0 +1,20 @@ +; This file contains a list of situations where node folding should happen... + +implementation + +void %test1({int, int} * %X) { + getelementptr {int, int} * %X, long 0 + %Y = cast {int, int} * %X to sbyte* + %Z = getelementptr sbyte* %Y, long 7 + store sbyte 6, sbyte *%Z + ret void +} + +void %test2({int, int} * %X) { + getelementptr {int, int} * %X, long 0 + %Y = cast {int, int} * %X to {sbyte,sbyte,sbyte,sbyte,sbyte,sbyte,sbyte,sbyte} * + %Z = getelementptr {sbyte,sbyte,sbyte,sbyte,sbyte,sbyte,sbyte,sbyte}* %Y, long 0, ubyte 7 + store sbyte 6, sbyte *%Z + ret void +} + diff --git a/test/Transforms/DSAnalysis/goodcases.ll b/test/Transforms/DSAnalysis/goodcases.ll new file mode 100644 index 00000000000..6d1fe629dc0 --- /dev/null +++ b/test/Transforms/DSAnalysis/goodcases.ll @@ -0,0 +1,21 @@ +; This file contains a list of cases where node folding should NOT happen +; + +implementation + +void %test1({int, int}* %X) { + getelementptr {int, int} * %X, long 0 + %Y = cast {int, int}* %X to uint* + store uint 5, uint* %Y + ret void +} + +; Test that "structural" equality works. Pointers can land in pointers n +; stuff. +void %test2({int*, int*}* %X) { + getelementptr {int*, int*}* %X, long 0 + %Y = cast {int*, int*}* %X to {uint*, long*}* + getelementptr {uint*, long*}* %Y, long 0 + ret void +} +