Skip to content

Commit e60bc0f

Browse files
committed
Further refinement
Signed-off-by: chenwei.sun <chenwei.sun@intel.com>
1 parent 00ba675 commit e60bc0f

File tree

1 file changed

+16
-30
lines changed
  • clang/runtime/dpct-rt/include/dpct

1 file changed

+16
-30
lines changed

clang/runtime/dpct-rt/include/dpct/util.hpp

Lines changed: 16 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1281,36 +1281,22 @@ inline uint32_t lop3(uint32_t a, uint32_t b, uint32_t c, uint8_t lut) {
12811281
result = -1;
12821282
break;
12831283
default: {
1284-
for (uint8_t i = 0; i < 8; i++) {
1285-
switch (lut & (1 << i)) {
1286-
case 0x1:
1287-
result |= (~a & ~b & ~c);
1288-
break;
1289-
case 0x2:
1290-
result |= (~a & ~b & c);
1291-
break;
1292-
case 0x4:
1293-
result |= (~a & b & ~c);
1294-
break;
1295-
case 0x8:
1296-
result |= (~a & b & c);
1297-
break;
1298-
case 0x10:
1299-
result |= (a & ~b & ~c);
1300-
break;
1301-
case 0x20:
1302-
result |= (a & ~b & c);
1303-
break;
1304-
case 0x40:
1305-
result |= (a & b & ~c);
1306-
break;
1307-
case 0x80:
1308-
result |= (a & b & c);
1309-
break;
1310-
default:
1311-
break;
1312-
}
1313-
}
1284+
if (lut & 0x01)
1285+
result |= ~a & ~b & ~c;
1286+
if (lut & 0x02)
1287+
result |= ~a & ~b & c;
1288+
if (lut & 0x04)
1289+
result |= ~a & b & ~c;
1290+
if (lut & 0x08)
1291+
result |= ~a & b & c;
1292+
if (lut & 0x10)
1293+
result |= a & ~b & ~c;
1294+
if (lut & 0x20)
1295+
result |= a & ~b & c;
1296+
if (lut & 0x40)
1297+
result |= a & b & ~c;
1298+
if (lut & 0x80)
1299+
result |= a & b & c;
13141300
break;
13151301
}
13161302
}

0 commit comments

Comments
 (0)