aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen
diff options
context:
space:
mode:
authorSanjiv Gupta <sanjiv.gupta@microchip.com>2009-12-22 14:25:37 +0000
committerSanjiv Gupta <sanjiv.gupta@microchip.com>2009-12-22 14:25:37 +0000
commit66500208a557f082453d138bf7c30e0c9edfa0a5 (patch)
treef53bf63389a8d674d5dab7fe217a1d37d287e25b /test/CodeGen
parenta1aa8bba77c5cf2ba164846764ece7d2bd32778a (diff)
downloadexternal_llvm-66500208a557f082453d138bf7c30e0c9edfa0a5.zip
external_llvm-66500208a557f082453d138bf7c30e0c9edfa0a5.tar.gz
external_llvm-66500208a557f082453d138bf7c30e0c9edfa0a5.tar.bz2
While converting one of the operands to a memory operand, we need to check if it is Legal and does not result into a cyclic dep.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91904 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen')
-rw-r--r--test/CodeGen/PIC16/C16-49.ll15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/CodeGen/PIC16/C16-49.ll b/test/CodeGen/PIC16/C16-49.ll
new file mode 100644
index 0000000..e59800b
--- /dev/null
+++ b/test/CodeGen/PIC16/C16-49.ll
@@ -0,0 +1,15 @@
+;RUN: llvm-as < %s | llc -march=pic16
+
+@aa = global i16 55, align 1 ; <i16*> [#uses=1]
+@bb = global i16 44, align 1 ; <i16*> [#uses=1]
+@PORTD = external global i8 ; <i8*> [#uses=1]
+
+define void @foo() nounwind {
+entry:
+ %tmp = volatile load i16* @aa ; <i16> [#uses=1]
+ %tmp1 = volatile load i16* @bb ; <i16> [#uses=1]
+ %sub = sub i16 %tmp, %tmp1 ; <i16> [#uses=1]
+ %conv = trunc i16 %sub to i8 ; <i8> [#uses=1]
+ store i8 %conv, i8* @PORTD
+ ret void
+}