return TEST_OK;
 }
 
+static int test__term_equal_legacy(struct evlist *evlist)
+{
+       struct evsel *evsel = evlist__first(evlist);
+
+       TEST_ASSERT_VAL("wrong type", evsel->core.attr.type == PERF_TYPE_HARDWARE);
+       TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES));
+       TEST_ASSERT_VAL("wrong name setting", strcmp(evsel->name, "l1d") == 0);
+       return TEST_OK;
+}
+
 #ifdef HAVE_LIBTRACEEVENT
 static int count_tracepoints(void)
 {
                .check = test__term_equal_term,
                /* 8 */
        },
+       {
+               .name  = "cycles/name=l1d/",
+               .check = test__term_equal_legacy,
+               /* 9 */
+       },
 };
 
 static const struct evlist_test test__events_pmu[] = {
                .check = test__term_equal_term,
                /* 0 */
        },
+       {
+               .name  = "cpu/cycles,name=l1d/",
+               .valid = test__pmu_cpu_valid,
+               .check = test__term_equal_legacy,
+               /* 1 */
+       },
 };
 
 struct terms_test {
 
 %type <str> PE_EVENT_NAME
 %type <str> PE_KERNEL_PMU_EVENT PE_PMU_EVENT_FAKE
 %type <str> PE_DRV_CFG_TERM
-%type <str> name_or_raw
+%type <str> name_or_raw name_or_legacy
 %destructor { free ($$); } <str>
 %type <term> event_term
 %destructor { parse_events_term__delete ($$); } <term>
 
 name_or_raw: PE_RAW | PE_NAME | PE_LEGACY_CACHE
 
+name_or_legacy: PE_NAME | PE_LEGACY_CACHE
+
 event_term:
 PE_RAW
 {
        $$ = term;
 }
 |
-name_or_raw '=' PE_NAME
+name_or_raw '=' name_or_legacy
 {
        struct parse_events_term *term;
 
        $$ = term;
 }
 |
-PE_TERM '=' PE_NAME
+PE_TERM '=' name_or_legacy
 {
        struct parse_events_term *term;
 
        $$ = term;
 }
 |
-name_or_raw array '=' PE_NAME
+name_or_raw array '=' name_or_legacy
 {
        struct parse_events_term *term;