mmasten updated this revision to Diff 194917.
mmasten added a comment.

Rebased and updated test.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D40577/new/

https://reviews.llvm.org/D40577

Files:
  clang/lib/CodeGen/CGOpenMPRuntime.cpp
  clang/test/OpenMP/declare_simd_codegen.cpp

Index: clang/test/OpenMP/declare_simd_codegen.cpp
===================================================================
--- clang/test/OpenMP/declare_simd_codegen.cpp
+++ clang/test/OpenMP/declare_simd_codegen.cpp
@@ -132,194 +132,194 @@
 // CHECK-DAG: define {{.+}}@_Z3food(
 // CHECK-DAG: declare {{.+}}@_Z5add_2Pf(
 
-// CHECK-DAG: "_ZGVbM4l8__Z5add_1Pf"
-// CHECK-DAG: "_ZGVbN4l8__Z5add_1Pf"
-// CHECK-DAG: "_ZGVcM8l8__Z5add_1Pf"
-// CHECK-DAG: "_ZGVcN8l8__Z5add_1Pf"
-// CHECK-DAG: "_ZGVdM8l8__Z5add_1Pf"
-// CHECK-DAG: "_ZGVdN8l8__Z5add_1Pf"
-// CHECK-DAG: "_ZGVeM16l8__Z5add_1Pf"
-// CHECK-DAG: "_ZGVeN16l8__Z5add_1Pf"
-// CHECK-DAG: "_ZGVbM32v__Z5add_1Pf"
-// CHECK-DAG: "_ZGVcM32v__Z5add_1Pf"
-// CHECK-DAG: "_ZGVdM32v__Z5add_1Pf"
-// CHECK-DAG: "_ZGVeM32v__Z5add_1Pf"
-// CHECK-DAG: "_ZGVbN2v__Z5add_1Pf"
-// CHECK-DAG: "_ZGVcN4v__Z5add_1Pf"
-// CHECK-DAG: "_ZGVdN4v__Z5add_1Pf"
-// CHECK-DAG: "_ZGVeN8v__Z5add_1Pf"
-
-// CHECK-DAG: "_ZGVbM2va16va16vv__Z1hIiEvPT_S1_S1_S1_"
-// CHECK-DAG: "_ZGVbN2va16va16vv__Z1hIiEvPT_S1_S1_S1_"
-// CHECK-DAG: "_ZGVcM4va16va16vv__Z1hIiEvPT_S1_S1_S1_"
-// CHECK-DAG: "_ZGVcN4va16va16vv__Z1hIiEvPT_S1_S1_S1_"
-// CHECK-DAG: "_ZGVdM4va16va16vv__Z1hIiEvPT_S1_S1_S1_"
-// CHECK-DAG: "_ZGVdN4va16va16vv__Z1hIiEvPT_S1_S1_S1_"
-// CHECK-DAG: "_ZGVeM8va16va16vv__Z1hIiEvPT_S1_S1_S1_"
-// CHECK-DAG: "_ZGVeN8va16va16vv__Z1hIiEvPT_S1_S1_S1_"
-
-// CHECK-DAG: "_ZGVbM2va16va16vv__Z1hIfEvPT_S1_S1_S1_"
-// CHECK-DAG: "_ZGVbN2va16va16vv__Z1hIfEvPT_S1_S1_S1_"
-// CHECK-DAG: "_ZGVcM4va16va16vv__Z1hIfEvPT_S1_S1_S1_"
-// CHECK-DAG: "_ZGVcN4va16va16vv__Z1hIfEvPT_S1_S1_S1_"
-// CHECK-DAG: "_ZGVdM4va16va16vv__Z1hIfEvPT_S1_S1_S1_"
-// CHECK-DAG: "_ZGVdN4va16va16vv__Z1hIfEvPT_S1_S1_S1_"
-// CHECK-DAG: "_ZGVeM8va16va16vv__Z1hIfEvPT_S1_S1_S1_"
-// CHECK-DAG: "_ZGVeN8va16va16vv__Z1hIfEvPT_S1_S1_S1_"
-
-// CHECK-DAG: "_ZGVbM4uus1__ZN2VV3addEii"
-// CHECK-DAG: "_ZGVbN4uus1__ZN2VV3addEii"
-// CHECK-DAG: "_ZGVcM8uus1__ZN2VV3addEii"
-// CHECK-DAG: "_ZGVcN8uus1__ZN2VV3addEii"
-// CHECK-DAG: "_ZGVdM8uus1__ZN2VV3addEii"
-// CHECK-DAG: "_ZGVdN8uus1__ZN2VV3addEii"
-// CHECK-DAG: "_ZGVeM16uus1__ZN2VV3addEii"
-// CHECK-DAG: "_ZGVeN16uus1__ZN2VV3addEii"
-
-// CHECK-DAG: "_ZGVbM4lla16l4a4__ZN2VV6taddpfEPfRS0_"
-// CHECK-DAG: "_ZGVbN4lla16l4a4__ZN2VV6taddpfEPfRS0_"
-// CHECK-DAG: "_ZGVcM8lla16l4a4__ZN2VV6taddpfEPfRS0_"
-// CHECK-DAG: "_ZGVcN8lla16l4a4__ZN2VV6taddpfEPfRS0_"
-// CHECK-DAG: "_ZGVdM8lla16l4a4__ZN2VV6taddpfEPfRS0_"
-// CHECK-DAG: "_ZGVdN8lla16l4a4__ZN2VV6taddpfEPfRS0_"
-// CHECK-DAG: "_ZGVeM16lla16l4a4__ZN2VV6taddpfEPfRS0_"
-// CHECK-DAG: "_ZGVeN16lla16l4a4__ZN2VV6taddpfEPfRS0_"
-
-// CHECK-DAG: "_ZGVbM4vvl8__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVbN4vvl8__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVcM8vvl8__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVcN8vvl8__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVdM8vvl8__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVdN8vvl8__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVeM16vvl8__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVeN16vvl8__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVbM4vva8v__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVbN4vva8v__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVcM8vva8v__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVcN8vva8v__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVdM8vva8v__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVdN8vva8v__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVeM16vva8v__ZN2VV4taddERA_iRi"
-// CHECK-DAG: "_ZGVeN16vva8v__ZN2VV4taddERA_iRi"
-
-// CHECK-DAG: "_ZGVbM4vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_"
-// CHECK-DAG: "_ZGVbN4vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_"
-// CHECK-DAG: "_ZGVcM8vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_"
-// CHECK-DAG: "_ZGVcN8vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_"
-// CHECK-DAG: "_ZGVdM8vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_"
-// CHECK-DAG: "_ZGVdN8vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_"
-// CHECK-DAG: "_ZGVeM16vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_"
-// CHECK-DAG: "_ZGVeN16vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_"
-
-// CHECK-DAG: "_ZGVbM4uu__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVbN4uu__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVcM8uu__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVcN8uu__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVdM8uu__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVdN8uu__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVeM16uu__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVeN16uu__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVbM4vv__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVbN4vv__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVcM8vv__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVcN8vv__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVdM8vv__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVdN8vv__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVeM16vv__ZN3TVVILi16EfE4taddEi"
-// CHECK-DAG: "_ZGVeN16vv__ZN3TVVILi16EfE4taddEi"
-
-// CHECK-DAG: "_ZGVbM64va128l64__Z3fooILi64EEvRAT__iRPf"
-// CHECK-DAG: "_ZGVbN64va128l64__Z3fooILi64EEvRAT__iRPf"
-// CHECK-DAG: "_ZGVcM64va128l64__Z3fooILi64EEvRAT__iRPf"
-// CHECK-DAG: "_ZGVcN64va128l64__Z3fooILi64EEvRAT__iRPf"
-// CHECK-DAG: "_ZGVdM64va128l64__Z3fooILi64EEvRAT__iRPf"
-// CHECK-DAG: "_ZGVdN64va128l64__Z3fooILi64EEvRAT__iRPf"
-// CHECK-DAG: "_ZGVeM64va128l64__Z3fooILi64EEvRAT__iRPf"
-// CHECK-DAG: "_ZGVeN64va128l64__Z3fooILi64EEvRAT__iRPf"
-
-// CHECK-DAG: "_ZGVbM4vv__Z3bar2VVPf"
-// CHECK-DAG: "_ZGVbN4vv__Z3bar2VVPf"
-// CHECK-DAG: "_ZGVcM8vv__Z3bar2VVPf"
-// CHECK-DAG: "_ZGVcN8vv__Z3bar2VVPf"
-// CHECK-DAG: "_ZGVdM8vv__Z3bar2VVPf"
-// CHECK-DAG: "_ZGVdN8vv__Z3bar2VVPf"
-// CHECK-DAG: "_ZGVeM16vv__Z3bar2VVPf"
-// CHECK-DAG: "_ZGVeN16vv__Z3bar2VVPf"
-// CHECK-DAG: "_ZGVbN4vva32__Z3bar2VVPf"
-// CHECK-DAG: "_ZGVcN8vva32__Z3bar2VVPf"
-// CHECK-DAG: "_ZGVdN8vva32__Z3bar2VVPf"
-// CHECK-DAG: "_ZGVeN16vva32__Z3bar2VVPf"
-
-// CHECK-DAG: "_ZGVbM4vv__Z3baz2VVPi"
-// CHECK-DAG: "_ZGVbN4vv__Z3baz2VVPi"
-// CHECK-DAG: "_ZGVcM8vv__Z3baz2VVPi"
-// CHECK-DAG: "_ZGVcN8vv__Z3baz2VVPi"
-// CHECK-DAG: "_ZGVdM8vv__Z3baz2VVPi"
-// CHECK-DAG: "_ZGVdN8vv__Z3baz2VVPi"
-// CHECK-DAG: "_ZGVeM16vv__Z3baz2VVPi"
-// CHECK-DAG: "_ZGVeN16vv__Z3baz2VVPi"
-// CHECK-DAG: "_ZGVbN4vva16__Z3baz2VVPi"
-// CHECK-DAG: "_ZGVcN8vva16__Z3baz2VVPi"
-// CHECK-DAG: "_ZGVdN8vva16__Z3baz2VVPi"
-// CHECK-DAG: "_ZGVeN16vva16__Z3baz2VVPi"
-
-// CHECK-DAG: "_ZGVbM2vv__Z3bay2VVRPd"
-// CHECK-DAG: "_ZGVbN2vv__Z3bay2VVRPd"
-// CHECK-DAG: "_ZGVcM4vv__Z3bay2VVRPd"
-// CHECK-DAG: "_ZGVcN4vv__Z3bay2VVRPd"
-// CHECK-DAG: "_ZGVdM4vv__Z3bay2VVRPd"
-// CHECK-DAG: "_ZGVdN4vv__Z3bay2VVRPd"
-// CHECK-DAG: "_ZGVeM8vv__Z3bay2VVRPd"
-// CHECK-DAG: "_ZGVeN8vv__Z3bay2VVRPd"
-// CHECK-DAG: "_ZGVbN2vva16__Z3bay2VVRPd"
-// CHECK-DAG: "_ZGVcN4vva16__Z3bay2VVRPd"
-// CHECK-DAG: "_ZGVdN4vva16__Z3bay2VVRPd"
-// CHECK-DAG: "_ZGVeN8vva16__Z3bay2VVRPd"
-
-// CHECK-DAG: "_ZGVbM4us2u__Z3bax2VVPdi"
-// CHECK-DAG: "_ZGVcM8us2u__Z3bax2VVPdi"
-// CHECK-DAG: "_ZGVdM8us2u__Z3bax2VVPdi"
-// CHECK-DAG: "_ZGVeM16us2u__Z3bax2VVPdi"
-// CHECK-DAG: "_ZGVbM4vvv__Z3bax2VVPdi"
-// CHECK-DAG: "_ZGVbN4vvv__Z3bax2VVPdi"
-// CHECK-DAG: "_ZGVcM8vvv__Z3bax2VVPdi"
-// CHECK-DAG: "_ZGVcN8vvv__Z3bax2VVPdi"
-// CHECK-DAG: "_ZGVdM8vvv__Z3bax2VVPdi"
-// CHECK-DAG: "_ZGVdN8vvv__Z3bax2VVPdi"
-// CHECK-DAG: "_ZGVeM16vvv__Z3bax2VVPdi"
-// CHECK-DAG: "_ZGVeN16vvv__Z3bax2VVPdi"
-
-// CHECK-DAG: "_ZGVbM4ua16vl1__Z3fooPffi"
-// CHECK-DAG: "_ZGVbN4ua16vl1__Z3fooPffi"
-// CHECK-DAG: "_ZGVcM8ua16vl1__Z3fooPffi"
-// CHECK-DAG: "_ZGVcN8ua16vl1__Z3fooPffi"
-// CHECK-DAG: "_ZGVdM8ua16vl1__Z3fooPffi"
-// CHECK-DAG: "_ZGVdN8ua16vl1__Z3fooPffi"
-// CHECK-DAG: "_ZGVeM16ua16vl1__Z3fooPffi"
-// CHECK-DAG: "_ZGVeN16ua16vl1__Z3fooPffi"
-
-// CHECK-DAG: "_ZGVbM4l8__Z5add_2Pf"
-// CHECK-DAG: "_ZGVbN4l8__Z5add_2Pf"
-// CHECK-DAG: "_ZGVcM8l8__Z5add_2Pf"
-// CHECK-DAG: "_ZGVcN8l8__Z5add_2Pf"
-// CHECK-DAG: "_ZGVdM8l8__Z5add_2Pf"
-// CHECK-DAG: "_ZGVdN8l8__Z5add_2Pf"
-// CHECK-DAG: "_ZGVeM16l8__Z5add_2Pf"
-// CHECK-DAG: "_ZGVeN16l8__Z5add_2Pf"
-// CHECK-DAG: "_ZGVbM32v__Z5add_2Pf"
-// CHECK-DAG: "_ZGVcM32v__Z5add_2Pf"
-// CHECK-DAG: "_ZGVdM32v__Z5add_2Pf"
-// CHECK-DAG: "_ZGVeM32v__Z5add_2Pf"
-// CHECK-DAG: "_ZGVbN2v__Z5add_2Pf"
-// CHECK-DAG: "_ZGVcN4v__Z5add_2Pf"
-// CHECK-DAG: "_ZGVdN4v__Z5add_2Pf"
-// CHECK-DAG: "_ZGVeN8v__Z5add_2Pf"
-
-// CHECK-DAG: "_ZGVbN2v__Z3food"
-// CHECK-DAG: "_ZGVcN4v__Z3food"
-// CHECK-DAG: "_ZGVdN4v__Z3food"
-// CHECK-DAG: "_ZGVeN8v__Z3food"
-
-// CHECK-NOT: "_ZGV{{.+}}__Z1fRA_i
+// CHECK-DAG: _ZGVbM4l8__Z5add_1Pf
+// CHECK-DAG: _ZGVbN4l8__Z5add_1Pf
+// CHECK-DAG: _ZGVcM8l8__Z5add_1Pf
+// CHECK-DAG: _ZGVcN8l8__Z5add_1Pf
+// CHECK-DAG: _ZGVdM8l8__Z5add_1Pf
+// CHECK-DAG: _ZGVdN8l8__Z5add_1Pf
+// CHECK-DAG: _ZGVeM16l8__Z5add_1Pf
+// CHECK-DAG: _ZGVeN16l8__Z5add_1Pf
+// CHECK-DAG: _ZGVbM32v__Z5add_1Pf
+// CHECK-DAG: _ZGVcM32v__Z5add_1Pf
+// CHECK-DAG: _ZGVdM32v__Z5add_1Pf
+// CHECK-DAG: _ZGVeM32v__Z5add_1Pf
+// CHECK-DAG: _ZGVbN2v__Z5add_1Pf
+// CHECK-DAG: _ZGVcN4v__Z5add_1Pf
+// CHECK-DAG: _ZGVdN4v__Z5add_1Pf
+// CHECK-DAG: _ZGVeN8v__Z5add_1Pf
+
+// CHECK-DAG: _ZGVbM2va16va16vv__Z1hIiEvPT_S1_S1_S1_
+// CHECK-DAG: _ZGVbN2va16va16vv__Z1hIiEvPT_S1_S1_S1_
+// CHECK-DAG: _ZGVcM4va16va16vv__Z1hIiEvPT_S1_S1_S1_
+// CHECK-DAG: _ZGVcN4va16va16vv__Z1hIiEvPT_S1_S1_S1_
+// CHECK-DAG: _ZGVdM4va16va16vv__Z1hIiEvPT_S1_S1_S1_
+// CHECK-DAG: _ZGVdN4va16va16vv__Z1hIiEvPT_S1_S1_S1_
+// CHECK-DAG: _ZGVeM8va16va16vv__Z1hIiEvPT_S1_S1_S1_
+// CHECK-DAG: _ZGVeN8va16va16vv__Z1hIiEvPT_S1_S1_S1_
+
+// CHECK-DAG: _ZGVbM2va16va16vv__Z1hIfEvPT_S1_S1_S1_
+// CHECK-DAG: _ZGVbN2va16va16vv__Z1hIfEvPT_S1_S1_S1_
+// CHECK-DAG: _ZGVcM4va16va16vv__Z1hIfEvPT_S1_S1_S1_
+// CHECK-DAG: _ZGVcN4va16va16vv__Z1hIfEvPT_S1_S1_S1_
+// CHECK-DAG: _ZGVdM4va16va16vv__Z1hIfEvPT_S1_S1_S1_
+// CHECK-DAG: _ZGVdN4va16va16vv__Z1hIfEvPT_S1_S1_S1_
+// CHECK-DAG: _ZGVeM8va16va16vv__Z1hIfEvPT_S1_S1_S1_
+// CHECK-DAG: _ZGVeN8va16va16vv__Z1hIfEvPT_S1_S1_S1_
+
+// CHECK-DAG: _ZGVbM4uus1__ZN2VV3addEii
+// CHECK-DAG: _ZGVbN4uus1__ZN2VV3addEii
+// CHECK-DAG: _ZGVcM8uus1__ZN2VV3addEii
+// CHECK-DAG: _ZGVcN8uus1__ZN2VV3addEii
+// CHECK-DAG: _ZGVdM8uus1__ZN2VV3addEii
+// CHECK-DAG: _ZGVdN8uus1__ZN2VV3addEii
+// CHECK-DAG: _ZGVeM16uus1__ZN2VV3addEii
+// CHECK-DAG: _ZGVeN16uus1__ZN2VV3addEii
+
+// CHECK-DAG: _ZGVbM4lla16l4a4__ZN2VV6taddpfEPfRS0_
+// CHECK-DAG: _ZGVbN4lla16l4a4__ZN2VV6taddpfEPfRS0_
+// CHECK-DAG: _ZGVcM8lla16l4a4__ZN2VV6taddpfEPfRS0_
+// CHECK-DAG: _ZGVcN8lla16l4a4__ZN2VV6taddpfEPfRS0_
+// CHECK-DAG: _ZGVdM8lla16l4a4__ZN2VV6taddpfEPfRS0_
+// CHECK-DAG: _ZGVdN8lla16l4a4__ZN2VV6taddpfEPfRS0_
+// CHECK-DAG: _ZGVeM16lla16l4a4__ZN2VV6taddpfEPfRS0_
+// CHECK-DAG: _ZGVeN16lla16l4a4__ZN2VV6taddpfEPfRS0_
+
+// CHECK-DAG: _ZGVbM4vvl8__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVbN4vvl8__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVcM8vvl8__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVcN8vvl8__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVdM8vvl8__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVdN8vvl8__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVeM16vvl8__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVeN16vvl8__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVbM4vva8v__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVbN4vva8v__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVcM8vva8v__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVcN8vva8v__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVdM8vva8v__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVdN8vva8v__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVeM16vva8v__ZN2VV4taddERA_iRi
+// CHECK-DAG: _ZGVeN16vva8v__ZN2VV4taddERA_iRi
+
+// CHECK-DAG: _ZGVbM4vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_
+// CHECK-DAG: _ZGVbN4vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_
+// CHECK-DAG: _ZGVcM8vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_
+// CHECK-DAG: _ZGVcN8vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_
+// CHECK-DAG: _ZGVdM8vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_
+// CHECK-DAG: _ZGVdN8vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_
+// CHECK-DAG: _ZGVeM16vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_
+// CHECK-DAG: _ZGVeN16vva32l16a16__ZN3TVVILi16EfE6taddpfEPfRS1_
+
+// CHECK-DAG: _ZGVbM4uu__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVbN4uu__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVcM8uu__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVcN8uu__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVdM8uu__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVdN8uu__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVeM16uu__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVeN16uu__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVbM4vv__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVbN4vv__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVcM8vv__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVcN8vv__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVdM8vv__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVdN8vv__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVeM16vv__ZN3TVVILi16EfE4taddEi
+// CHECK-DAG: _ZGVeN16vv__ZN3TVVILi16EfE4taddEi
+
+// CHECK-DAG: _ZGVbM64va128l64__Z3fooILi64EEvRAT__iRPf
+// CHECK-DAG: _ZGVbN64va128l64__Z3fooILi64EEvRAT__iRPf
+// CHECK-DAG: _ZGVcM64va128l64__Z3fooILi64EEvRAT__iRPf
+// CHECK-DAG: _ZGVcN64va128l64__Z3fooILi64EEvRAT__iRPf
+// CHECK-DAG: _ZGVdM64va128l64__Z3fooILi64EEvRAT__iRPf
+// CHECK-DAG: _ZGVdN64va128l64__Z3fooILi64EEvRAT__iRPf
+// CHECK-DAG: _ZGVeM64va128l64__Z3fooILi64EEvRAT__iRPf
+// CHECK-DAG: _ZGVeN64va128l64__Z3fooILi64EEvRAT__iRPf
+
+// CHECK-DAG: _ZGVbM4vv__Z3bar2VVPf
+// CHECK-DAG: _ZGVbN4vv__Z3bar2VVPf
+// CHECK-DAG: _ZGVcM8vv__Z3bar2VVPf
+// CHECK-DAG: _ZGVcN8vv__Z3bar2VVPf
+// CHECK-DAG: _ZGVdM8vv__Z3bar2VVPf
+// CHECK-DAG: _ZGVdN8vv__Z3bar2VVPf
+// CHECK-DAG: _ZGVeM16vv__Z3bar2VVPf
+// CHECK-DAG: _ZGVeN16vv__Z3bar2VVPf
+// CHECK-DAG: _ZGVbN4vva32__Z3bar2VVPf
+// CHECK-DAG: _ZGVcN8vva32__Z3bar2VVPf
+// CHECK-DAG: _ZGVdN8vva32__Z3bar2VVPf
+// CHECK-DAG: _ZGVeN16vva32__Z3bar2VVPf
+
+// CHECK-DAG: _ZGVbM4vv__Z3baz2VVPi
+// CHECK-DAG: _ZGVbN4vv__Z3baz2VVPi
+// CHECK-DAG: _ZGVcM8vv__Z3baz2VVPi
+// CHECK-DAG: _ZGVcN8vv__Z3baz2VVPi
+// CHECK-DAG: _ZGVdM8vv__Z3baz2VVPi
+// CHECK-DAG: _ZGVdN8vv__Z3baz2VVPi
+// CHECK-DAG: _ZGVeM16vv__Z3baz2VVPi
+// CHECK-DAG: _ZGVeN16vv__Z3baz2VVPi
+// CHECK-DAG: _ZGVbN4vva16__Z3baz2VVPi
+// CHECK-DAG: _ZGVcN8vva16__Z3baz2VVPi
+// CHECK-DAG: _ZGVdN8vva16__Z3baz2VVPi
+// CHECK-DAG: _ZGVeN16vva16__Z3baz2VVPi
+
+// CHECK-DAG: _ZGVbM2vv__Z3bay2VVRPd
+// CHECK-DAG: _ZGVbN2vv__Z3bay2VVRPd
+// CHECK-DAG: _ZGVcM4vv__Z3bay2VVRPd
+// CHECK-DAG: _ZGVcN4vv__Z3bay2VVRPd
+// CHECK-DAG: _ZGVdM4vv__Z3bay2VVRPd
+// CHECK-DAG: _ZGVdN4vv__Z3bay2VVRPd
+// CHECK-DAG: _ZGVeM8vv__Z3bay2VVRPd
+// CHECK-DAG: _ZGVeN8vv__Z3bay2VVRPd
+// CHECK-DAG: _ZGVbN2vva16__Z3bay2VVRPd
+// CHECK-DAG: _ZGVcN4vva16__Z3bay2VVRPd
+// CHECK-DAG: _ZGVdN4vva16__Z3bay2VVRPd
+// CHECK-DAG: _ZGVeN8vva16__Z3bay2VVRPd
+
+// CHECK-DAG: _ZGVbM4us2u__Z3bax2VVPdi
+// CHECK-DAG: _ZGVcM8us2u__Z3bax2VVPdi
+// CHECK-DAG: _ZGVdM8us2u__Z3bax2VVPdi
+// CHECK-DAG: _ZGVeM16us2u__Z3bax2VVPdi
+// CHECK-DAG: _ZGVbM4vvv__Z3bax2VVPdi
+// CHECK-DAG: _ZGVbN4vvv__Z3bax2VVPdi
+// CHECK-DAG: _ZGVcM8vvv__Z3bax2VVPdi
+// CHECK-DAG: _ZGVcN8vvv__Z3bax2VVPdi
+// CHECK-DAG: _ZGVdM8vvv__Z3bax2VVPdi
+// CHECK-DAG: _ZGVdN8vvv__Z3bax2VVPdi
+// CHECK-DAG: _ZGVeM16vvv__Z3bax2VVPdi
+// CHECK-DAG: _ZGVeN16vvv__Z3bax2VVPdi
+
+// CHECK-DAG: _ZGVbM4ua16vl1__Z3fooPffi
+// CHECK-DAG: _ZGVbN4ua16vl1__Z3fooPffi
+// CHECK-DAG: _ZGVcM8ua16vl1__Z3fooPffi
+// CHECK-DAG: _ZGVcN8ua16vl1__Z3fooPffi
+// CHECK-DAG: _ZGVdM8ua16vl1__Z3fooPffi
+// CHECK-DAG: _ZGVdN8ua16vl1__Z3fooPffi
+// CHECK-DAG: _ZGVeM16ua16vl1__Z3fooPffi
+// CHECK-DAG: _ZGVeN16ua16vl1__Z3fooPffi
+
+// CHECK-DAG: _ZGVbM4l8__Z5add_2Pf
+// CHECK-DAG: _ZGVbN4l8__Z5add_2Pf
+// CHECK-DAG: _ZGVcM8l8__Z5add_2Pf
+// CHECK-DAG: _ZGVcN8l8__Z5add_2Pf
+// CHECK-DAG: _ZGVdM8l8__Z5add_2Pf
+// CHECK-DAG: _ZGVdN8l8__Z5add_2Pf
+// CHECK-DAG: _ZGVeM16l8__Z5add_2Pf
+// CHECK-DAG: _ZGVeN16l8__Z5add_2Pf
+// CHECK-DAG: _ZGVbM32v__Z5add_2Pf
+// CHECK-DAG: _ZGVcM32v__Z5add_2Pf
+// CHECK-DAG: _ZGVdM32v__Z5add_2Pf
+// CHECK-DAG: _ZGVeM32v__Z5add_2Pf
+// CHECK-DAG: _ZGVbN2v__Z5add_2Pf
+// CHECK-DAG: _ZGVcN4v__Z5add_2Pf
+// CHECK-DAG: _ZGVdN4v__Z5add_2Pf
+// CHECK-DAG: _ZGVeN8v__Z5add_2Pf
+
+// CHECK-DAG: _ZGVbN2v__Z3food
+// CHECK-DAG: _ZGVcN4v__Z3food
+// CHECK-DAG: _ZGVdN4v__Z3food
+// CHECK-DAG: _ZGVeN8v__Z3food
+
+// CHECK-NOT: _ZGV{{.+}}__Z1fRA_i
 
 #endif
Index: clang/lib/CodeGen/CGOpenMPRuntime.cpp
===================================================================
--- clang/lib/CodeGen/CGOpenMPRuntime.cpp
+++ clang/lib/CodeGen/CGOpenMPRuntime.cpp
@@ -9611,10 +9611,18 @@
     Masked.push_back('M');
     break;
   }
-  for (char Mask : Masked) {
-    for (const ISADataTy &Data : ISAData) {
-      SmallString<256> Buffer;
-      llvm::raw_svector_ostream Out(Buffer);
+
+  std::string Buffer;
+  if (Fn->hasFnAttribute("vector-variants")) {
+    llvm::Attribute Attr = Fn->getFnAttribute("vector-variants");
+    Buffer = Attr.getValueAsString().str();
+  }
+  llvm::raw_string_ostream Out(Buffer);
+
+  for (auto Mask : Masked) {
+    for (auto &Data : ISAData) {
+      if (!Buffer.empty())
+        Out << ",";
       Out << "_ZGV" << Data.ISA << Mask;
       if (!VLENVal) {
         Out << llvm::APSInt::getUnsigned(Data.VecRegSize /
@@ -9643,9 +9651,11 @@
           Out << 'a' << ParamAttr.Alignment;
       }
       Out << '_' << Fn->getName();
-      Fn->addFnAttr(Out.str());
+      Out.flush();
     }
   }
+
+  Fn->addFnAttr("vector-variants", Out.str());
 }
 
 void CGOpenMPRuntime::emitDeclareSimdFunction(const FunctionDecl *FD,
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to