diff --git a/include/clang/Basic/BuiltinsHexagon.def b/include/clang/Basic/BuiltinsHexagon.def index 85936cbfc08ead6e17c4c637e198b1c90d4588e1..14fc4adc25bc05dbd7b145344fee9bb729bc2be2 100644 --- a/include/clang/Basic/BuiltinsHexagon.def +++ b/include/clang/Basic/BuiltinsHexagon.def @@ -882,6 +882,12 @@ BUILTIN(__builtin_HEXAGON_S2_ct0p,"iLLi","") BUILTIN(__builtin_HEXAGON_S2_ct1p,"iLLi","") BUILTIN(__builtin_HEXAGON_S2_interleave,"LLiLLi","") BUILTIN(__builtin_HEXAGON_S2_deinterleave,"LLiLLi","") +BUILTIN(__builtin_HEXAGON_Y2_dccleana,"vv*","") +BUILTIN(__builtin_HEXAGON_Y2_dccleaninva,"vv*","") +BUILTIN(__builtin_HEXAGON_Y2_dcinva,"vv*","") +BUILTIN(__builtin_HEXAGON_Y2_dczeroa,"vv*","") +BUILTIN(__builtin_HEXAGON_Y4_l2fetch,"vv*Ui","") +BUILTIN(__builtin_HEXAGON_Y5_l2fetch,"vv*LLUi","") BUILTIN(__builtin_HEXAGON_S6_rol_i_r,"iii","v:60:") BUILTIN(__builtin_HEXAGON_S6_rol_i_p,"LLiLLii","v:60:") diff --git a/test/CodeGen/builtins-hexagon.c b/test/CodeGen/builtins-hexagon.c index e2eda2afafd5d324c502cee3ed37611a728382d2..f9f5d495d02a853e300cd66099dfd9027b581598 100644 --- a/test/CodeGen/builtins-hexagon.c +++ b/test/CodeGen/builtins-hexagon.c @@ -2962,4 +2962,16 @@ void foo() { // CHECK: @llvm.hexagon.V6.vzh.128B __builtin_HEXAGON_V6_vzh(v16); // CHECK: @llvm.hexagon.V6.vzh + __builtin_HEXAGON_Y2_dccleana(0); + // CHECK: @llvm.hexagon.Y2.dccleana + __builtin_HEXAGON_Y2_dccleaninva(0); + // CHECK: @llvm.hexagon.Y2.dccleaninva + __builtin_HEXAGON_Y2_dcinva(0); + // CHECK: @llvm.hexagon.Y2.dcinva + __builtin_HEXAGON_Y2_dczeroa(0); + // CHECK: @llvm.hexagon.Y2.dczeroa + __builtin_HEXAGON_Y4_l2fetch(0, 0); + // CHECK: @llvm.hexagon.Y4.l2fetch + __builtin_HEXAGON_Y5_l2fetch(0, 0); + // CHECK: @llvm.hexagon.Y5.l2fetch }