(self)
| 1038 | assert cmp == data_cmp |
| 1039 | |
| 1040 | def test_operators_logical(self): |
| 1041 | if self._is_fp(): |
| 1042 | data_a = self._data() |
| 1043 | else: |
| 1044 | data_a = self._data(self._int_max() - self.nlanes) |
| 1045 | data_b = self._data(self._int_min(), reverse=True) |
| 1046 | vdata_a, vdata_b = self.load(data_a), self.load(data_b) |
| 1047 | |
| 1048 | if self._is_fp(): |
| 1049 | data_cast_a = self._to_unsigned(vdata_a) |
| 1050 | data_cast_b = self._to_unsigned(vdata_b) |
| 1051 | cast, cast_data = self._to_unsigned, self._to_unsigned |
| 1052 | else: |
| 1053 | data_cast_a, data_cast_b = data_a, data_b |
| 1054 | cast, cast_data = lambda a: a, self.load |
| 1055 | |
| 1056 | data_xor = cast_data([a ^ b for a, b in zip(data_cast_a, data_cast_b)]) |
| 1057 | vxor = cast(self.xor(vdata_a, vdata_b)) |
| 1058 | assert vxor == data_xor |
| 1059 | |
| 1060 | data_or = cast_data([a | b for a, b in zip(data_cast_a, data_cast_b)]) |
| 1061 | vor = cast(getattr(self, "or")(vdata_a, vdata_b)) |
| 1062 | assert vor == data_or |
| 1063 | |
| 1064 | data_and = cast_data([a & b for a, b in zip(data_cast_a, data_cast_b)]) |
| 1065 | vand = cast(getattr(self, "and")(vdata_a, vdata_b)) |
| 1066 | assert vand == data_and |
| 1067 | |
| 1068 | data_not = cast_data([~a for a in data_cast_a]) |
| 1069 | vnot = cast(getattr(self, "not")(vdata_a)) |
| 1070 | assert vnot == data_not |
| 1071 | |
| 1072 | if self.sfx not in ("u8"): |
| 1073 | return |
| 1074 | data_andc = [a & ~b for a, b in zip(data_cast_a, data_cast_b)] |
| 1075 | vandc = cast(getattr(self, "andc")(vdata_a, vdata_b)) |
| 1076 | assert vandc == data_andc |
| 1077 | |
| 1078 | @pytest.mark.parametrize("intrin", ["any", "all"]) |
| 1079 | @pytest.mark.parametrize("data", ( |
nothing calls this directly
no test coverage detected