summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2013-03-07 20:42:17 +0000
committerChad Rosier <mcrosier@apple.com>2013-03-07 20:42:17 +0000
commit9c1796f8775ec64e42bf845703cc7b06e1804924 (patch)
tree669d0515c5236456867637af4c59ad1af8d2c073
parentfdf362bd698d389c33b034a781e8ca0d8488abc5 (diff)
downloadbcm5719-llvm-9c1796f8775ec64e42bf845703cc7b06e1804924.tar.gz
bcm5719-llvm-9c1796f8775ec64e42bf845703cc7b06e1804924.zip
[fast-isel] Add support for the expect intrinsic.
rdar://13370942 llvm-svn: 176649
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/FastISel.cpp5
-rw-r--r--llvm/test/CodeGen/ARM/fast-isel-intrinsic.ll12
2 files changed, 17 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
index a11f434ae00..35f7fcbd390 100644
--- a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
@@ -698,6 +698,11 @@ bool FastISel::SelectCall(const User *I) {
UpdateValueMap(Call, ResultReg);
return true;
}
+ case Intrinsic::expect: {
+// unsigned ResultReg = getRegForValue(Call->getArgOperand(0));
+// UpdateValueMap(Call, ResultReg);
+// return true;
+ }
}
// Usually, it does not make sense to initialize a value,
diff --git a/llvm/test/CodeGen/ARM/fast-isel-intrinsic.ll b/llvm/test/CodeGen/ARM/fast-isel-intrinsic.ll
index 41089785cef..48105dd3893 100644
--- a/llvm/test/CodeGen/ARM/fast-isel-intrinsic.ll
+++ b/llvm/test/CodeGen/ARM/fast-isel-intrinsic.ll
@@ -238,3 +238,15 @@ define void @t7() nounwind ssp {
call void @llvm.memcpy.p0i8.p0i8.i32(i8* getelementptr inbounds ([60 x i8]* @temp, i32 0, i32 4), i8* getelementptr inbounds ([60 x i8]* @temp, i32 0, i32 16), i32 3, i32 2, i1 false)
ret void
}
+
+define i32 @t8(i32 %x) nounwind {
+entry:
+; ARM: t8
+; ARM-NOT: FastISel missed call: %expval = call i32 @llvm.expect.i32(i32 %x, i32 1)
+; THUMB: t8
+; THUMB-NOT: FastISel missed call: %expval = call i32 @llvm.expect.i32(i32 %x, i32 1)
+ %expval = call i32 @llvm.expect.i32(i32 %x, i32 1)
+ ret i32 %expval
+}
+
+declare i32 @llvm.expect.i32(i32, i32) nounwind readnone
OpenPOWER on IntegriCloud