forked from OSchip/llvm-project
[ARM] Fix cdp intrinsic
- Fixed cdp intrinsic to only accept compile time constant values previously you could pass in a variable to the builtin which would result in illegal llvm assembly output Differential Revision: http://reviews.llvm.org/D20394 llvm-svn: 270058
This commit is contained in:
parent
dbbbef5401
commit
b631aafee3
|
@ -52,8 +52,8 @@ BUILTIN(__builtin_arm_mcr, "vUIiUIiUiUIiUIiUIi", "")
|
|||
BUILTIN(__builtin_arm_mcr2, "vUIiUIiUiUIiUIiUIi", "")
|
||||
BUILTIN(__builtin_arm_mrc, "UiUIiUIiUIiUIiUIi", "")
|
||||
BUILTIN(__builtin_arm_mrc2, "UiUIiUIiUIiUIiUIi", "")
|
||||
BUILTIN(__builtin_arm_cdp, "vUiUiUiUiUiUi", "")
|
||||
BUILTIN(__builtin_arm_cdp2, "vUiUiUiUiUiUi", "")
|
||||
BUILTIN(__builtin_arm_cdp, "vUIiUIiUIiUIiUIiUIi", "")
|
||||
BUILTIN(__builtin_arm_cdp2, "vUIiUIiUIiUIiUIiUIi", "")
|
||||
BUILTIN(__builtin_arm_mcrr, "vUIiUIiUiUiUIi", "")
|
||||
BUILTIN(__builtin_arm_mcrr2, "vUIiUIiUiUiUIi", "")
|
||||
|
||||
|
|
|
@ -84,6 +84,20 @@ void prefetch(int i) {
|
|||
// CHECK: call {{.*}} @llvm.prefetch(i8* %{{.*}}, i32 1, i32 3, i32 0)
|
||||
}
|
||||
|
||||
void cdp() {
|
||||
// CHECK: define void @cdp()
|
||||
// CHECK: call void @llvm.arm.cdp(i32 1, i32 2, i32 3, i32 4, i32 5, i32 6)
|
||||
// CHECK-NEXT: ret void
|
||||
__builtin_arm_cdp(1, 2, 3, 4, 5, 6);
|
||||
}
|
||||
|
||||
void cdp2() {
|
||||
// CHECK: define void @cdp2()
|
||||
// CHECK: call void @llvm.arm.cdp2(i32 1, i32 2, i32 3, i32 4, i32 5, i32 6)
|
||||
// CHECK-NEXT: ret void
|
||||
__builtin_arm_cdp2(1, 2, 3, 4, 5, 6);
|
||||
}
|
||||
|
||||
unsigned mrc() {
|
||||
// CHECK: define i32 @mrc()
|
||||
// CHECK: [[R:%.*]] = call i32 @llvm.arm.mrc(i32 15, i32 0, i32 13, i32 0, i32 3)
|
||||
|
|
|
@ -48,6 +48,18 @@ void test5() {
|
|||
}
|
||||
|
||||
void test6(int a, int b, int c) {
|
||||
__builtin_arm_cdp(a, 2, 3, 4, 5, 6); // expected-error {{argument to '__builtin_arm_cdp' must be a constant integer}}
|
||||
__builtin_arm_cdp(1, a, 3, 4, 5, 6); // expected-error {{argument to '__builtin_arm_cdp' must be a constant integer}}
|
||||
__builtin_arm_cdp(1, 2, a, 4, 5, 6); // expected-error {{argument to '__builtin_arm_cdp' must be a constant integer}}
|
||||
__builtin_arm_cdp(1, 2, 3, a, 5, 6); // expected-error {{argument to '__builtin_arm_cdp' must be a constant integer}}
|
||||
__builtin_arm_cdp(1, 2, 3, 4, 5, a); // expected-error {{argument to '__builtin_arm_cdp' must be a constant integer}}
|
||||
|
||||
__builtin_arm_cdp2(a, 2, 3, 4, 5, 6); // expected-error {{argument to '__builtin_arm_cdp2' must be a constant integer}}
|
||||
__builtin_arm_cdp2(1, a, 3, 4, 5, 6); // expected-error {{argument to '__builtin_arm_cdp2' must be a constant integer}}
|
||||
__builtin_arm_cdp2(1, 2, a, 4, 5, 6); // expected-error {{argument to '__builtin_arm_cdp2' must be a constant integer}}
|
||||
__builtin_arm_cdp2(1, 2, 3, a, 5, 6); // expected-error {{argument to '__builtin_arm_cdp2' must be a constant integer}}
|
||||
__builtin_arm_cdp2(1, 2, 3, 4, 5, a); // expected-error {{argument to '__builtin_arm_cdp2' must be a constant integer}}
|
||||
|
||||
__builtin_arm_mrc( a, 0, 13, 0, 3); // expected-error {{argument to '__builtin_arm_mrc' must be a constant integer}}
|
||||
__builtin_arm_mrc(15, a, 13, 0, 3); // expected-error {{argument to '__builtin_arm_mrc' must be a constant integer}}
|
||||
__builtin_arm_mrc(15, 0, a, 0, 3); // expected-error {{argument to '__builtin_arm_mrc' must be a constant integer}}
|
||||
|
|
Loading…
Reference in New Issue