Skip to content

Commit c8588fa

Browse files
committed
Add triple selection for spir64
1 parent 53592cf commit c8588fa

File tree

1 file changed

+45
-2
lines changed

1 file changed

+45
-2
lines changed

sycl/test-e2e/format.py

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,46 @@ def getMatchedFromList(self, features, alist):
9898
except ValueError as e:
9999
raise ValueError("Error in UNSUPPORTED list:\n%s" % str(e))
100100

101+
def make_default_features_list(self, expr, triple, add_default=True):
102+
### EXCEPTIONS LIST
103+
# TODO: Define elsewhere?
104+
exceptions = {}
105+
exceptions["spir64"]={
106+
"cuda":False, "hip":False,
107+
}
108+
exceptions["system"]={
109+
"linux":True, "windows":False, "system-windows":False,
110+
"run-mode":False, "TEMPORARY_DISABLED":False,
111+
}
112+
queried_features = []
113+
for f in expr:
114+
queried_features = queried_features + re.findall("[-+=._a-zA-Z0-9]+", f)
115+
116+
features = []
117+
for f in queried_features:
118+
if (exceptions[triple].get(
119+
f,exceptions["system"].get(f,add_default))):
120+
features.append(f)
121+
return features
122+
123+
def select_triples_for_test(self, test):
124+
# Check Triples
125+
triples = set()
126+
possible_triples = ["spir64"]
127+
for triple in possible_triples:
128+
unsupported=self.make_default_features_list(test.unsupported,triple,False)
129+
required=self.make_default_features_list(test.requires,triple)
130+
xfails=self.make_default_features_list(test.xfails,triple,False)
131+
if test.getMissingRequiredFeaturesFromList(required):
132+
continue
133+
if self.getMatchedFromList(unsupported, test.unsupported):
134+
continue
135+
#if "*" in test.xfails or self.getMatchedFromList(xfails, test.xfails):
136+
# continue
137+
triples.add(triple)
138+
139+
return triples
140+
101141
def select_devices_for_test(self, test):
102142
devices = []
103143
for d in test.config.sycl_devices:
@@ -157,8 +197,11 @@ def execute(self, test, litConfig):
157197
devices_for_test = []
158198
triples = set()
159199
if "run-mode" not in test.config.available_features:
160-
# TODO: Use requires/unsupported to decide triples to build for
161-
triples.add("spir64")
200+
triples = self.select_triples_for_test(test)
201+
if not triples:
202+
return lit.Test.Result(
203+
lit.Test.UNSUPPORTED, "No supported backend to build for"
204+
)
162205
else:
163206
devices_for_test = self.select_devices_for_test(test)
164207
if not devices_for_test:

0 commit comments

Comments
 (0)