diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2007-04-04 23:48:25 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2007-04-04 23:48:25 +0000 |
commit | cce90f55ed5bc6414850e9085ab47382892577b9 (patch) | |
tree | a26b06293f5540d0d471174b989858fbcd47a1be /llvm/test/CodeGen | |
parent | 9797fee9a17c5dee3bede95bd16427301764ab4c (diff) | |
download | bcm5719-llvm-cce90f55ed5bc6414850e9085ab47382892577b9.tar.gz bcm5719-llvm-cce90f55ed5bc6414850e9085ab47382892577b9.zip |
Implement the llvm.bit.part_select.iN.iN.iN overloaded intrinsic.
llvm-svn: 35678
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r-- | llvm/test/CodeGen/Generic/bit-intrinsics.ll | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/Generic/bit-intrinsics.ll b/llvm/test/CodeGen/Generic/bit-intrinsics.ll new file mode 100644 index 00000000000..a260421772d --- /dev/null +++ b/llvm/test/CodeGen/Generic/bit-intrinsics.ll @@ -0,0 +1,14 @@ +; Make sure this testcase is supported by all code generators. Either the +; intrinsic is supported natively or IntrinsicLowering provides it. +; RUN: llvm-as < %s | llc + + +declare i32 @llvm.bit.part.select.i32.i32(i32 %x, i32 %hi, i32 %lo) +declare i16 @llvm.bit.part.select.i16.i16(i16 %x, i32 %hi, i32 %lo) +define i32 @bit_part_select(i32 %A, i16 %B) { + %a = call i32 @llvm.bit.part.select.i32.i32(i32 %A, i32 8, i32 0) + %b = call i16 @llvm.bit.part.select.i16.i16(i16 %B, i32 8, i32 0) + %c = zext i16 %b to i32 + %d = add i32 %a, %c + ret i32 %d +} |