LLVM: include/llvm/CodeGen/ISDOpcodes.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_CODEGEN_ISDOPCODES_H

14#define LLVM_CODEGEN_ISDOPCODES_H

15

18

19namespace llvm {

20

21

22

23

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

42

43

44

46

47

49

50

51

52

54

55

56

57

58

59

60

61

64

65

66

67

68

70

71

72

73

74

75

76

77

79

80

95

96

97

98

99

101

102

104

105

106

107

108

109

112

113

114

115

116

118

119

120

121

123

124

125

126

127

128

129

131

132

133

136

137

138

139

141

142

143

144

146

147

148

149

150

152

153

154

155

156

158

159

160

161

162

164

165

166

168

169

170

171

172

173

176

177

178

179

187

189

190

191

192

194

195

196

197

198

199

201

202

203

204

205

206

207

209

210

211

212

213

214

216

217

218

220

221

222

223

224

226

227

229

230

232

233

234

235

237

238

239

240

241

243

244

245

246

247

248

250

251

252

253

254

255

257

258

266

267

268

269

272

273

274

277

278

279

281

282

283

284

285

286

287

288

291

292

293

294

295

296

297

298

301

302

303

304

305

306

307

308

309

310

311

312

313

314

315

316

317

318

319

320

321

322

325

326

327

328

329

330

331

332

335

336

337

338

339

340

341

342

345

346

349

350

353

354

355

356

357

358

359

362

363

364

365

366

367

368

371

372

373

374

375

376

377

378

381

382

383

384

385

386

389

390

391

392

395

396

397

398

399

402

403

404

405

408

409

415

416

417

418

419

426

427

428

429

430

465

466

467

468

469

472

473

474

475

476

479

480

481

482

483

484

485

486

487

488

489

490

491

492

494

495

496

497

499

500

501

502

503

506

507

509

510

512

513

514

516

517

518

519

520

522

523

524

525

526

528

529

530

532

533

535

536

537

538

539

540

542

543

544

545

546

547

548

550

551

552

553

554

555

556

557

559

560

561

562

563

564

565

566

567

568

570

571

572

573

574

575

576

578

579

580

581

582

583

584

585

586

587

588

589

590

591

592

594

595

596

597

598

599

600

601

602

603

604

605

606

608

609

610

611

612

613

614

615

616

618

619

620

621

622

623

624

625

626

627

629

630

631

632

634

635

636

637

638

639

640

641

643

644

645

646

647

648

649

650

651

652

653

655

656

657

658

659

660

661

663

664

665

666

667

668

670

671

672

673

674

675

676

677

679

680

681

682

683

684

685

686

687

689

690

691

692

693

694

695

697

698

699

700

703

704

705

706

709

710

711

714

715

716

717

718

721

722

723

728

729

730

731

734

735

739

740

741

742

743

745

746

747

748

749

750

751

752

753

754

755

756

757

758

759

760

761

769

770

777

778

781

782

783

785

786

787

788

789

790

791

792

794

795

796

797

798

800

801

802

803

804

805

806

808

809

810

811

812

813

814

816

817

818

819

820

824

825

826

827

828

829

830

831

833

834

835

836

837

839

840

842

843

845

846

847

848

849

850

851

852

853

854

855

856

857

858

860

862

864

865

866

867

870

871

872

873

874

875

877

878

879

880

881

882

883

884

885

886

888

889

890

891

892

893

894

895

896

897

899

900

901

902

903

904

905

906

907

908

910

911

912

913

916

917

918

919

920

921

922

923

924

925

926

927

928

929

930

931

932

935

936

937

938

939

940

941

942

943

944

945

946

948

949

950

951

952

953

954

955

956

957

959

960

961

962

963 SET_ROUNDING,

964

965

966 FP_EXTEND,

967

968

969

970

971

972

973

974

975

976

977

978

979

980

981 BITCAST,

982

983

984

985 ADDRSPACECAST,

986

987

988

989

990

991 FP16_TO_FP,

992 FP_TO_FP16,

993 STRICT_FP16_TO_FP,

994 STRICT_FP_TO_FP16,

995

996

997

998

999

1000 BF16_TO_FP,

1001 FP_TO_BF16,

1002 STRICT_BF16_TO_FP,

1003 STRICT_FP_TO_BF16,

1004

1005

1006

1007

1008 FNEG,

1009 FABS,

1010 FSQRT,

1011 FCBRT,

1012 FSIN,

1013 FCOS,

1014 FTAN,

1015 FASIN,

1016 FACOS,

1017 FATAN,

1018 FSINH,

1019 FCOSH,

1020 FTANH,

1021 FPOW,

1022 FPOWI,

1023

1024 FLDEXP,

1025

1026 FATAN2,

1027

1028

1029

1030

1031 FFREXP,

1032

1033 FLOG,

1034 FLOG2,

1035 FLOG10,

1036 FEXP,

1037 FEXP2,

1038 FEXP10,

1039 FCEIL,

1040 FTRUNC,

1041 FRINT,

1042 FNEARBYINT,

1043 FROUND,

1044 FROUNDEVEN,

1045 FFLOOR,

1046 LROUND,

1047 LLROUND,

1048 LRINT,

1049 LLRINT,

1050

1051

1052

1053

1054

1055

1056

1057

1058

1059

1060

1061

1062

1063

1064

1065 FMINNUM,

1066 FMAXNUM,

1067

1068

1069

1070

1071

1072

1073

1074

1075

1076

1077

1078

1079

1080

1081 FMINNUM_IEEE,

1082 FMAXNUM_IEEE,

1083

1084

1085

1086

1087 FMINIMUM,

1088 FMAXIMUM,

1089

1090

1091

1092 FMINIMUMNUM,

1093 FMAXIMUMNUM,

1094

1095

1096 FSINCOS,

1097

1098

1099

1100 FSINCOSPI,

1101

1102

1103

1104 FMODF,

1105

1106

1107

1108

1109 GET_FPENV,

1110

1111

1112

1113

1114 SET_FPENV,

1115

1116

1117

1118 RESET_FPENV,

1119

1120

1121

1122

1123 GET_FPENV_MEM,

1124

1125

1126

1127

1128 SET_FPENV_MEM,

1129

1130

1131

1132 GET_FPMODE,

1133

1134

1135

1136

1137 SET_FPMODE,

1138

1139

1140

1141 RESET_FPMODE,

1142

1143

1144

1145

1146

1147 LOAD,

1148 STORE,

1149

1150

1151

1152

1153

1154

1155

1156

1157 DYNAMIC_STACKALLOC,

1158

1159

1160

1161

1162

1163 BR,

1164

1165

1166

1167

1168 BRIND,

1169

1170

1171

1172 BR_JT,

1173

1174

1175

1176 JUMP_TABLE_DEBUG_INFO,

1177

1178

1179

1180

1181

1182

1183

1184

1185

1186 BRCOND,

1187

1188

1189

1190

1191

1192

1193 BR_CC,

1194

1195

1196

1197

1198

1199

1200

1201

1202

1203

1204

1205

1206

1207

1208

1209

1210 INLINEASM,

1211

1212

1213 INLINEASM_BR,

1214

1215

1216

1217

1218 EH_LABEL,

1219

1220

1221

1222

1223

1224 ANNOTATION_LABEL,

1225

1226

1227

1228

1229 CATCHRET,

1230

1231

1232

1233 CLEANUPRET,

1234

1235

1236

1237

1238 STACKSAVE,

1239

1240

1241

1242 STACKRESTORE,

1243

1244

1245

1246

1247

1248

1249

1250

1251

1252

1253

1254

1255

1256 CALLSEQ_START,

1257 CALLSEQ_END,

1258

1259

1260

1261

1262 VAARG,

1263

1264

1265

1266

1267 VACOPY,

1268

1269

1270

1271 VAEND,

1272 VASTART,

1273

1274

1275

1276 PREALLOCATED_SETUP,

1277

1278

1279 PREALLOCATED_ARG,

1280

1281

1282

1283 SRCVALUE,

1284

1285

1286

1287 MDNODE_SDNODE,

1288

1289

1290 PCMARKER,

1291

1292

1293

1294

1295

1296

1297

1298 READCYCLECOUNTER,

1299

1300

1301

1302

1303

1304 READSTEADYCOUNTER,

1305

1306

1307 HANDLENODE,

1308

1309

1310

1311

1312

1313

1314

1315 INIT_TRAMPOLINE,

1316

1317

1318

1319

1320

1321 ADJUST_TRAMPOLINE,

1322

1323

1324 TRAP,

1325

1326

1327 DEBUGTRAP,

1328

1329

1330

1331 UBSANTRAP,

1332

1333

1334

1335

1336

1338

1339

1340

1341 ARITH_FENCE,

1342

1343

1344 MEMBARRIER,

1345

1346

1347

1348

1349 ATOMIC_FENCE,

1350

1351

1352

1354

1355

1356

1358

1359

1360

1361

1362

1363

1364 ATOMIC_CMP_SWAP,

1365

1366

1367

1368

1369

1370 ATOMIC_CMP_SWAP_WITH_SUCCESS,

1371

1372

1373

1374

1375

1376

1377

1378 ATOMIC_SWAP,

1379 ATOMIC_LOAD_ADD,

1380 ATOMIC_LOAD_SUB,

1381 ATOMIC_LOAD_AND,

1382 ATOMIC_LOAD_CLR,

1383 ATOMIC_LOAD_OR,

1384 ATOMIC_LOAD_XOR,

1385 ATOMIC_LOAD_NAND,

1386 ATOMIC_LOAD_MIN,

1387 ATOMIC_LOAD_MAX,

1388 ATOMIC_LOAD_UMIN,

1389 ATOMIC_LOAD_UMAX,

1390 ATOMIC_LOAD_FADD,

1391 ATOMIC_LOAD_FSUB,

1392 ATOMIC_LOAD_FMAX,

1393 ATOMIC_LOAD_FMIN,

1394 ATOMIC_LOAD_FMAXIMUM,

1395 ATOMIC_LOAD_FMINIMUM,

1396 ATOMIC_LOAD_UINC_WRAP,

1397 ATOMIC_LOAD_UDEC_WRAP,

1398 ATOMIC_LOAD_USUB_COND,

1399 ATOMIC_LOAD_USUB_SAT,

1400

1401

1402

1403

1404

1405

1406

1407 MLOAD,

1408 MSTORE,

1409

1410

1411

1412

1413

1414

1415

1416

1417

1418

1419 MGATHER,

1420 MSCATTER,

1421

1422

1423

1424 LIFETIME_START,

1425 LIFETIME_END,

1426

1427

1428

1429

1430 FAKE_USE,

1431

1432

1433

1434

1435

1436

1437

1438 GC_TRANSITION_START,

1439 GC_TRANSITION_END,

1440

1441

1442

1443

1444

1445 GET_DYNAMIC_AREA_OFFSET,

1446

1447

1448

1449 PSEUDO_PROBE,

1450

1451

1452

1453

1454 VSCALE,

1455

1456

1457

1458

1459

1460

1461

1462

1463

1464 VECREDUCE_SEQ_FADD,

1465 VECREDUCE_SEQ_FMUL,

1466

1467

1468

1469

1470

1471

1472

1473

1474

1475

1476

1477

1478

1479 VECREDUCE_FADD,

1480 VECREDUCE_FMUL,

1481

1482 VECREDUCE_FMAX,

1483 VECREDUCE_FMIN,

1484

1485

1486 VECREDUCE_FMAXIMUM,

1487 VECREDUCE_FMINIMUM,

1488

1489

1490

1491 VECREDUCE_ADD,

1492 VECREDUCE_MUL,

1493 VECREDUCE_AND,

1494 VECREDUCE_OR,

1495 VECREDUCE_XOR,

1496 VECREDUCE_SMAX,

1497 VECREDUCE_SMIN,

1498 VECREDUCE_UMAX,

1499 VECREDUCE_UMIN,

1500

1501

1502

1503

1504

1505

1506

1507

1508

1509

1510

1511

1512

1513

1514

1515

1516 PARTIAL_REDUCE_SMLA,

1517 PARTIAL_REDUCE_UMLA,

1518 PARTIAL_REDUCE_SUMLA,

1519 PARTIAL_REDUCE_FMLA,

1520

1521

1522

1523

1524 STACKMAP,

1525

1526

1527

1528

1529

1530 PATCHPOINT,

1531

1532

1533

1534

1535 PTRADD,

1536

1537

1538#define BEGIN_REGISTER_VP_SDNODE(VPSDID, ...) VPSDID,

1539#include "llvm/IR/VPIntrinsics.def"

1540

1541

1542 RELOC_NONE,

1543

1544

1545 CONVERGENCECTRL_ANCHOR,

1546 CONVERGENCECTRL_ENTRY,

1547 CONVERGENCECTRL_LOOP,

1548

1549

1550

1551 CONVERGENCECTRL_GLUE,

1552

1553

1554

1555

1556 EXPERIMENTAL_VECTOR_HISTOGRAM,

1557

1558

1559

1560 VECTOR_FIND_LAST_ACTIVE,

1561

1562

1563

1564

1565

1566

1567

1568

1569 GET_ACTIVE_LANE_MASK,

1570

1571

1572

1573

1576

1577

1578

1579

1581

1582

1583

1585

1586

1587

1589};

1590

1591

1595

1596

1597

1599

1600

1601

1603

1604

1606

1607

1609

1610

1612

1613

1615

1616

1618

1619

1621 bool hasFPExcept);

1622

1623

1625

1626

1627

1628

1629

1630

1631

1632

1633

1634

1635

1636

1637

1638

1639

1640

1641

1642

1643

1644

1645

1646

1647

1648

1649

1650

1651

1652

1653

1655

1657

1658

1659

1660

1661

1662

1663

1664

1665

1666

1668

1670

1674

1675

1676

1677

1678

1679

1680

1681

1682

1683

1684

1686

1688

1690

1691

1692

1693

1694

1695

1696

1697

1698

1699

1700

1701

1702

1703

1704

1706

1707 SETFALSE,

1708 SETOEQ,

1709 SETOGT,

1710 SETOGE,

1711 SETOLT,

1712 SETOLE,

1713 SETONE,

1714 SETO,

1715 SETUO,

1716 SETUEQ,

1717 SETUGT,

1718 SETUGE,

1719 SETULT,

1720 SETULE,

1721 SETUNE,

1722 SETTRUE,

1723

1724 SETFALSE2,

1725 SETEQ,

1726 SETGT,

1727 SETGE,

1728 SETLT,

1729 SETLE,

1730 SETNE,

1731 SETTRUE2,

1732

1734};

1735

1736

1737

1741

1742

1743

1747

1748

1749

1753

1754

1755

1759

1760

1761

1762

1764

1765

1766

1767

1769 return ((int)Cond >> 3) & 3;

1770}

1771

1772

1773

1775

1780

1786

1788

1789

1790

1791

1792

1793

1795}

1796

1797

1798

1800

1801

1802

1803

1805

1806

1807

1808

1810

1811}

1812

1813}

1814

1815#endif

PowerPC Reduce CR logical Operation

const SmallVectorImpl< MachineOperand > & Cond

#define ATOMIC_STORE(x, y)

The instances of the Type class are immutable: once they are created, they are never changed.

Definition ISDOpcodes.h:1787

LLVM_ABI CondCode getSetCCInverse(CondCode Operation, bool isIntegerLike)

Return the operation corresponding to !(X op Y), where 'op' is a valid SetCC operation.

ISD namespace - This namespace contains an enum which represents all of the SelectionDAG node types a...

Definition ISDOpcodes.h:24

LLVM_ABI CondCode getSetCCAndOperation(CondCode Op1, CondCode Op2, EVT Type)

Return the result of a logical AND between different comparisons of identical values: ((X op1 Y) & (X...

NodeType

ISD::NodeType enum - This enum defines the target-independent operators for a SelectionDAG.

Definition ISDOpcodes.h:41

@ SETCC

SetCC operator - This evaluates to a true value iff the condition is true.

Definition ISDOpcodes.h:807

@ MERGE_VALUES

MERGE_VALUES - This node takes multiple discrete operands and returns them all as its individual resu...

Definition ISDOpcodes.h:256

@ CTLZ_ZERO_UNDEF

Definition ISDOpcodes.h:780

@ TargetConstantPool

Definition ISDOpcodes.h:184

@ STRICT_FSETCC

STRICT_FSETCC/STRICT_FSETCCS - Constrained versions of SETCC, used for floating-point operands only.

Definition ISDOpcodes.h:504

@ DELETED_NODE

DELETED_NODE - This is an illegal value that is used to catch errors.

Definition ISDOpcodes.h:45

@ STRICT_FSIN

Definition ISDOpcodes.h:435

@ POISON

POISON - A poison node.

Definition ISDOpcodes.h:231

@ LOOP_DEPENDENCE_RAW_MASK

Definition ISDOpcodes.h:1575

@ JumpTable

Definition ISDOpcodes.h:91

@ EH_SJLJ_LONGJMP

OUTCHAIN = EH_SJLJ_LONGJMP(INCHAIN, buffer) This corresponds to the eh.sjlj.longjmp intrinsic.

Definition ISDOpcodes.h:163

@ SREM

Definition ISDOpcodes.h:264

@ FGETSIGN

INT = FGETSIGN(FP) - Return the sign bit of the specified floating point value as an integer 0/1 valu...

Definition ISDOpcodes.h:531

@ SMUL_LOHI

SMUL_LOHI/UMUL_LOHI - Multiply two integers of type iN, producing a signed/unsigned value of type i[2...

Definition ISDOpcodes.h:270

@ SSUBO_CARRY

Definition ISDOpcodes.h:334

@ UDIV

Definition ISDOpcodes.h:263

@ INSERT_SUBVECTOR

INSERT_SUBVECTOR(VECTOR1, VECTOR2, IDX) - Returns a vector with VECTOR2 inserted into VECTOR1.

Definition ISDOpcodes.h:593

@ UINT_TO_FP

Definition ISDOpcodes.h:869

@ UMIN

Definition ISDOpcodes.h:726

@ BSWAP

Byte Swap and Counting operators.

Definition ISDOpcodes.h:771

@ ROTR

Definition ISDOpcodes.h:766

@ SMULFIX

RESULT = [US]MULFIX(LHS, RHS, SCALE) - Perform fixed point multiplication on 2 integers with the same...

Definition ISDOpcodes.h:387

@ TargetBlockAddress

Definition ISDOpcodes.h:186

@ ConstantFP

Definition ISDOpcodes.h:87

@ STRICT_FATAN2

Definition ISDOpcodes.h:441

@ DEACTIVATION_SYMBOL

Definition ISDOpcodes.h:1584

@ UADDO

Definition ISDOpcodes.h:344

@ SDIV

Definition ISDOpcodes.h:262

@ STRICT_FCEIL

Definition ISDOpcodes.h:454

@ ADDC

Carry-setting nodes for multiple precision addition and subtraction.

Definition ISDOpcodes.h:289

@ FRAME_TO_ARGS_OFFSET

FRAME_TO_ARGS_OFFSET - This node represents offset from frame pointer to first (possible) on-stack ar...

Definition ISDOpcodes.h:140

@ FMAD

FMAD - Perform a * b + c, while getting the same result as the separately rounded operations.

Definition ISDOpcodes.h:515

@ STRICT_FTANH

Definition ISDOpcodes.h:444

@ ADD

Simple integer binary arithmetic operators.

Definition ISDOpcodes.h:259

@ SMULFIXSAT

Same as the corresponding unsaturated fixed point instructions, but the result is clamped between the...

Definition ISDOpcodes.h:393

@ STRICT_FMA

Definition ISDOpcodes.h:425

@ ANY_EXTEND

ANY_EXTEND - Used for integer types. The high bits are undefined.

Definition ISDOpcodes.h:841

@ FSUB

Definition ISDOpcodes.h:411

@ FMA

FMA - Perform a * b + c with no intermediate rounding step.

Definition ISDOpcodes.h:511

@ UMULFIX

Definition ISDOpcodes.h:388

@ SUBC

Definition ISDOpcodes.h:290

@ INTRINSIC_VOID

OUTCHAIN = INTRINSIC_VOID(INCHAIN, INTRINSICID, arg1, arg2, ...) This node represents a target intrin...

Definition ISDOpcodes.h:215

@ RETURNADDR

Definition ISDOpcodes.h:111

@ EH_SJLJ_SETUP_DISPATCH

OUTCHAIN = EH_SJLJ_SETUP_DISPATCH(INCHAIN) The target initializes the dispatch table here.

Definition ISDOpcodes.h:167

@ GlobalAddress

Definition ISDOpcodes.h:88

@ STRICT_FMINIMUM

Definition ISDOpcodes.h:464

@ SINT_TO_FP

[SU]INT_TO_FP - These operators convert integers (whose interpreted sign depends on the first letter)...

Definition ISDOpcodes.h:868

@ CONCAT_VECTORS

CONCAT_VECTORS(VECTOR0, VECTOR1, ...) - Given a number of values of vector type with the same length ...

Definition ISDOpcodes.h:577

@ FADD

Simple binary floating point operators.

Definition ISDOpcodes.h:410

@ ABS

ABS - Determine the unsigned absolute value of a signed integer value of the same bitwidth.

Definition ISDOpcodes.h:744

@ SIGN_EXTEND_VECTOR_INREG

SIGN_EXTEND_VECTOR_INREG(Vector) - This operator represents an in-register sign-extension of the low ...

Definition ISDOpcodes.h:898

@ UDIVREM

Definition ISDOpcodes.h:276

@ SDIVREM

SDIVREM/UDIVREM - Divide two integers and produce both a quotient and remainder result.

Definition ISDOpcodes.h:275

@ SRL

Definition ISDOpcodes.h:764

@ STRICT_FSETCCS

Definition ISDOpcodes.h:505

@ FMULADD

FMULADD - Performs a * b + c, with, or without, intermediate rounding.

Definition ISDOpcodes.h:521

@ STRICT_FLOG2

Definition ISDOpcodes.h:449

@ FPTRUNC_ROUND

FPTRUNC_ROUND - This corresponds to the fptrunc_round intrinsic.

Definition ISDOpcodes.h:508

@ VALUETYPE

Definition ISDOpcodes.h:82

@ STRICT_FDIV

Definition ISDOpcodes.h:423

@ Register

Definition ISDOpcodes.h:84

@ BUILD_PAIR

BUILD_PAIR - This is the opposite of EXTRACT_ELEMENT in some ways.

Definition ISDOpcodes.h:249

@ SDIVFIX

RESULT = [US]DIVFIX(LHS, RHS, SCALE) - Perform fixed point division on 2 integers with the same width...

Definition ISDOpcodes.h:400

@ STRICT_FSQRT

Constrained versions of libm-equivalent floating point intrinsics.

Definition ISDOpcodes.h:431

@ BUILTIN_OP_END

BUILTIN_OP_END - This must be the last enum value in this list.

Definition ISDOpcodes.h:1588

@ UCMP

Definition ISDOpcodes.h:733

@ GlobalTLSAddress

Definition ISDOpcodes.h:89

@ SRA

Definition ISDOpcodes.h:763

@ FrameIndex

Definition ISDOpcodes.h:90

@ STRICT_FMUL

Definition ISDOpcodes.h:422

@ EH_RETURN

OUTCHAIN = EH_RETURN(INCHAIN, OFFSET, HANDLER) - This node represents 'eh_return' gcc dwarf builtin,...

Definition ISDOpcodes.h:151

@ USUBO

Definition ISDOpcodes.h:348

@ AVGFLOORU

Definition ISDOpcodes.h:708

@ SIGN_EXTEND

Conversion operators.

Definition ISDOpcodes.h:832

@ STRICT_FASIN

Definition ISDOpcodes.h:438

@ AVGCEILS

AVGCEILS/AVGCEILU - Rounding averaging add - Add two integers using an integer of type i[N+2],...

Definition ISDOpcodes.h:712

@ STRICT_UINT_TO_FP

Definition ISDOpcodes.h:478

@ SCALAR_TO_VECTOR

SCALAR_TO_VECTOR(VAL) - This represents the operation of loading a scalar value into element 0 of the...

Definition ISDOpcodes.h:662

@ ADDROFRETURNADDR

ADDROFRETURNADDR - Represents the llvm.addressofreturnaddress intrinsic.

Definition ISDOpcodes.h:117

@ TargetExternalSymbol

Definition ISDOpcodes.h:185

@ USHLSAT

Definition ISDOpcodes.h:380

@ UDIVFIXSAT

Definition ISDOpcodes.h:407

@ UADDSAT

Definition ISDOpcodes.h:361

@ STRICT_FATAN

Definition ISDOpcodes.h:440

@ CTTZ_ZERO_UNDEF

Bit counting operators with an undefined result for zero inputs.

Definition ISDOpcodes.h:779

@ TargetJumpTable

Definition ISDOpcodes.h:183

@ TargetIndex

TargetIndex - Like a constant pool entry, but with completely target-dependent semantics.

Definition ISDOpcodes.h:193

@ WRITE_REGISTER

Definition ISDOpcodes.h:135

@ STRICT_FPOW

Definition ISDOpcodes.h:432

@ TRUNCATE_SSAT_U

Definition ISDOpcodes.h:861

@ SETCCCARRY

Like SetCC, ops #0 and #1 are the LHS and RHS operands to compare, but op #2 is a boolean indicating ...

Definition ISDOpcodes.h:815

@ STRICT_LROUND

Definition ISDOpcodes.h:459

@ CTTZ

Definition ISDOpcodes.h:772

@ SSUBO

Same for subtraction.

Definition ISDOpcodes.h:347

@ FP_TO_UINT

Definition ISDOpcodes.h:915

@ VECTOR_INTERLEAVE

VECTOR_INTERLEAVE(VEC1, VEC2, ...) - Returns N vectors from N input vectors, where N is the factor to...

Definition ISDOpcodes.h:628

@ STEP_VECTOR

STEP_VECTOR(IMM) - Returns a scalable vector whose lanes are comprised of a linear sequence of unsign...

Definition ISDOpcodes.h:688

@ OR

Definition ISDOpcodes.h:737

@ FCANONICALIZE

Returns platform specific canonical encoding of a floating point number.

Definition ISDOpcodes.h:534

@ IS_FPCLASS

Performs a check of floating point class property, defined by IEEE-754.

Definition ISDOpcodes.h:541

@ SSUBSAT

RESULT = [US]SUBSAT(LHS, RHS) - Perform saturation subtraction on 2 integers with the same bit width ...

Definition ISDOpcodes.h:369

@ UMULO

Definition ISDOpcodes.h:352

@ SRA_PARTS

Definition ISDOpcodes.h:822

@ SELECT

Select(COND, TRUEVAL, FALSEVAL).

Definition ISDOpcodes.h:784

@ UMUL_LOHI

Definition ISDOpcodes.h:271

@ STRICT_FPOWI

Definition ISDOpcodes.h:433

@ UNDEF

UNDEF - An undefined node.

Definition ISDOpcodes.h:228

@ RegisterMask

Definition ISDOpcodes.h:85

@ EXTRACT_ELEMENT

EXTRACT_ELEMENT - This is used to get the lower or upper (determined by a Constant,...

Definition ISDOpcodes.h:242

@ SPLAT_VECTOR

SPLAT_VECTOR(VAL) - Returns a vector with the scalar value VAL duplicated in all lanes.

Definition ISDOpcodes.h:669

@ AssertAlign

AssertAlign - These nodes record if a register contains a value that has a known alignment and the tr...

Definition ISDOpcodes.h:69

@ FSHL

Definition ISDOpcodes.h:767

@ BasicBlock

Various leaf nodes.

Definition ISDOpcodes.h:81

@ AVGCEILU

Definition ISDOpcodes.h:713

@ CopyFromReg

CopyFromReg - This node indicates that the input value is a virtual or physical register that is defi...

Definition ISDOpcodes.h:225

@ SADDO

RESULT, BOOL = [SU]ADDO(LHS, RHS) - Overflow-aware nodes for addition.

Definition ISDOpcodes.h:343

@ FSHR

Definition ISDOpcodes.h:768

@ TargetGlobalAddress

TargetGlobalAddress - Like GlobalAddress, but the DAG does no folding or anything else with this node...

Definition ISDOpcodes.h:180

@ STRICT_FTRUNC

Definition ISDOpcodes.h:458

@ USUBSAT

Definition ISDOpcodes.h:370

@ GET_ROUNDING

Returns current rounding mode: -1 Undefined 0 Round to 0 1 Round to nearest, ties to even 2 Round to ...

Definition ISDOpcodes.h:958

@ MULHU

MULHU/MULHS - Multiply high - Multiply two integers of type iN, producing an unsigned/signed value of...

Definition ISDOpcodes.h:701

@ SHL

Shift and rotation operations.

Definition ISDOpcodes.h:762

@ AssertNoFPClass

AssertNoFPClass - These nodes record if a register contains a float value that is known to be not som...

Definition ISDOpcodes.h:78

@ VECTOR_SHUFFLE

VECTOR_SHUFFLE(VEC1, VEC2) - Returns a vector, of the same type as VEC1/VEC2.

Definition ISDOpcodes.h:642

@ PtrAuthGlobalAddress

A ptrauth constant.

Definition ISDOpcodes.h:100

@ EXTRACT_SUBVECTOR

EXTRACT_SUBVECTOR(VECTOR, IDX) - Returns a subvector from VECTOR.

Definition ISDOpcodes.h:607

@ STRICT_FMAXIMUM

Definition ISDOpcodes.h:463

@ EntryToken

EntryToken - This is the marker used to indicate the start of a region.

Definition ISDOpcodes.h:48

@ STRICT_FMAXNUM

Definition ISDOpcodes.h:452

@ READ_REGISTER

READ_REGISTER, WRITE_REGISTER - This node represents llvm.register on the DAG, which implements the n...

Definition ISDOpcodes.h:134

@ XOR

Definition ISDOpcodes.h:738

@ EXTRACT_VECTOR_ELT

EXTRACT_VECTOR_ELT(VECTOR, IDX) - Returns a single element from VECTOR identified by the (potentially...

Definition ISDOpcodes.h:569

@ CopyToReg

CopyToReg - This node has three operands: a chain, a register number to set to this value,...

Definition ISDOpcodes.h:219

@ ZERO_EXTEND

ZERO_EXTEND - Used for integer types, zeroing the new bits.

Definition ISDOpcodes.h:838

@ TargetConstantFP

Definition ISDOpcodes.h:175

@ FP_TO_UINT_SAT

Definition ISDOpcodes.h:934

@ STRICT_FMINNUM

Definition ISDOpcodes.h:453

@ CTPOP

Definition ISDOpcodes.h:774

@ SELECT_CC

Select with condition operator - This selects between a true value and a false value (ops #2 and #3) ...

Definition ISDOpcodes.h:799

@ FMUL

Definition ISDOpcodes.h:412

@ STRICT_FSINH

Definition ISDOpcodes.h:442

@ LOCAL_RECOVER

LOCAL_RECOVER - Represents the llvm.localrecover intrinsic.

Definition ISDOpcodes.h:130

@ SRL_PARTS

Definition ISDOpcodes.h:823

@ SUB

Definition ISDOpcodes.h:260

@ MULHS

Definition ISDOpcodes.h:702

@ SSHLSAT

RESULT = [US]SHLSAT(LHS, RHS) - Perform saturation left shift.

Definition ISDOpcodes.h:379

@ SMULO

Same for multiplication.

Definition ISDOpcodes.h:351

@ CONDCODE

Definition ISDOpcodes.h:83

@ PARITY

Definition ISDOpcodes.h:776

@ STRICT_LRINT

Definition ISDOpcodes.h:461

@ TargetFrameIndex

Definition ISDOpcodes.h:182

@ ConstantPool

Definition ISDOpcodes.h:92

@ ANY_EXTEND_VECTOR_INREG

ANY_EXTEND_VECTOR_INREG(Vector) - This operator represents an in-register any-extension of the low la...

Definition ISDOpcodes.h:887

@ SIGN_EXTEND_INREG

SIGN_EXTEND_INREG - This operator atomically performs a SHL/SRA pair to sign extend a small value in ...

Definition ISDOpcodes.h:876

@ UDIVFIX

Definition ISDOpcodes.h:401

@ UMULFIXSAT

Definition ISDOpcodes.h:394

@ SMIN

[US]{MIN/MAX} - Binary minimum or maximum of signed or unsigned integers.

Definition ISDOpcodes.h:724

@ MCSymbol

Definition ISDOpcodes.h:188

@ Constant

Definition ISDOpcodes.h:86

@ STRICT_FREM

Definition ISDOpcodes.h:424

@ VECTOR_REVERSE

VECTOR_REVERSE(VECTOR) - Returns a vector, of the same type as VECTOR, whose elements are shuffled us...

Definition ISDOpcodes.h:633

@ SDIVFIXSAT

Same as the corresponding unsaturated fixed point instructions, but the result is clamped between the...

Definition ISDOpcodes.h:406

@ GLOBAL_OFFSET_TABLE

The address of the GOT.

Definition ISDOpcodes.h:103

@ STRICT_FROUND

Definition ISDOpcodes.h:456

@ VSELECT

Select with a vector condition (op #0) and two vector operands (ops #1 and #2), returning a vector re...

Definition ISDOpcodes.h:793

@ UADDO_CARRY

Carry-using nodes for multiple precision addition and subtraction.

Definition ISDOpcodes.h:323

@ STRICT_SINT_TO_FP

STRICT_[US]INT_TO_FP - Convert a signed or unsigned integer to a floating point value.

Definition ISDOpcodes.h:477

@ STRICT_FFLOOR

Definition ISDOpcodes.h:455

@ STRICT_FROUNDEVEN

Definition ISDOpcodes.h:457

@ STRICT_FEXP

Definition ISDOpcodes.h:445

@ EH_DWARF_CFA

EH_DWARF_CFA - This node represents the pointer to the DWARF Canonical Frame Address (CFA),...

Definition ISDOpcodes.h:145

@ FDIV

Definition ISDOpcodes.h:413

@ FRAMEADDR

FRAMEADDR, RETURNADDR - These nodes represent llvm.frameaddress and llvm.returnaddress on the DAG.

Definition ISDOpcodes.h:110

@ FREM

Definition ISDOpcodes.h:414

@ STRICT_FP_TO_UINT

Definition ISDOpcodes.h:471

@ STRICT_FP_ROUND

X = STRICT_FP_ROUND(Y, TRUNC) - Rounding 'Y' from a larger floating point type down to the precision ...

Definition ISDOpcodes.h:493

@ STRICT_FP_TO_SINT

STRICT_FP_TO_[US]INT - Convert a floating point value to a signed or unsigned integer.

Definition ISDOpcodes.h:470

@ FP_TO_SINT

FP_TO_[US]INT - Convert a floating point value to a signed or unsigned integer.

Definition ISDOpcodes.h:914

@ TargetConstant

TargetConstant* - Like Constant*, but the DAG does not do any folding, simplification,...

Definition ISDOpcodes.h:174

@ STRICT_FP_EXTEND

X = STRICT_FP_EXTEND(Y) - Extend a smaller FP type into a larger FP type.

Definition ISDOpcodes.h:498

@ AND

Bitwise operators - logical and, logical or, logical xor.

Definition ISDOpcodes.h:736

@ INTRINSIC_WO_CHAIN

RESULT = INTRINSIC_WO_CHAIN(INTRINSICID, arg1, arg2, ...) This node represents a target intrinsic fun...

Definition ISDOpcodes.h:200

@ USUBO_CARRY

Definition ISDOpcodes.h:324

@ STRICT_FCOSH

Definition ISDOpcodes.h:443

@ SUBE

Definition ISDOpcodes.h:300

@ SCMP

[US]CMP - 3-way comparison of signed or unsigned integers.

Definition ISDOpcodes.h:732

@ CARRY_FALSE

CARRY_FALSE - This node is used when folding other nodes, like ADDC/SUBC, which indicate the carry re...

Definition ISDOpcodes.h:280

@ AVGFLOORS

AVGFLOORS/AVGFLOORU - Averaging add - Add two integers using an integer of type i[N+1],...

Definition ISDOpcodes.h:707

@ ADDE

Carry-using nodes for multiple precision addition and subtraction.

Definition ISDOpcodes.h:299

@ STRICT_FADD

Constrained versions of the binary floating point operators.

Definition ISDOpcodes.h:420

@ UREM

Definition ISDOpcodes.h:265

@ STRICT_FLOG10

Definition ISDOpcodes.h:448

@ SPLAT_VECTOR_PARTS

SPLAT_VECTOR_PARTS(SCALAR1, SCALAR2, ...) - Returns a vector with the scalar values joined together a...

Definition ISDOpcodes.h:678

@ FREEZE

FREEZE - FREEZE(VAL) returns an arbitrary value if VAL is UNDEF (or is evaluated to UNDEF),...

Definition ISDOpcodes.h:236

@ INSERT_VECTOR_ELT

INSERT_VECTOR_ELT(VECTOR, VAL, IDX) - Returns VECTOR with the element at IDX replaced with VAL.

Definition ISDOpcodes.h:558

@ TokenFactor

TokenFactor - This node takes multiple tokens as input and produces a single token result.

Definition ISDOpcodes.h:53

@ STRICT_LLRINT

Definition ISDOpcodes.h:462

@ VECTOR_SPLICE

VECTOR_SPLICE(VEC1, VEC2, IMM) - Returns a subvector of the same type as VEC1/VEC2 from CONCAT_VECTOR...

Definition ISDOpcodes.h:654

@ STRICT_FEXP2

Definition ISDOpcodes.h:446

@ STRICT_FSUB

Definition ISDOpcodes.h:421

@ STRICT_FLOG

Definition ISDOpcodes.h:447

@ ExternalSymbol

Definition ISDOpcodes.h:93

@ STRICT_FTAN

Definition ISDOpcodes.h:437

@ MUL

Definition ISDOpcodes.h:261

@ FP_ROUND

X = FP_ROUND(Y, TRUNC) - Rounding 'Y' from a larger floating point type down to the precision of the ...

Definition ISDOpcodes.h:947

@ VECTOR_COMPRESS

VECTOR_COMPRESS(Vec, Mask, Passthru) consecutively place vector elements based on mask e....

Definition ISDOpcodes.h:696

@ CTLZ

Definition ISDOpcodes.h:773

@ SPONENTRY

SPONENTRY - Represents the llvm.sponentry intrinsic.

Definition ISDOpcodes.h:122

@ CLEAR_CACHE

Definition ISDOpcodes.h:1580

@ STRICT_FLDEXP

Definition ISDOpcodes.h:434

@ STRICT_LLROUND

Definition ISDOpcodes.h:460

@ ZERO_EXTEND_VECTOR_INREG

ZERO_EXTEND_VECTOR_INREG(Vector) - This operator represents an in-register zero-extension of the low ...

Definition ISDOpcodes.h:909

@ STRICT_FCOS

Definition ISDOpcodes.h:436

@ STRICT_FNEARBYINT

Definition ISDOpcodes.h:451

@ FP_TO_SINT_SAT

FP_TO_[US]INT_SAT - Convert floating point value in operand 0 to a signed or unsigned scalar integer ...

Definition ISDOpcodes.h:933

@ EH_SJLJ_SETJMP

RESULT, OUTCHAIN = EH_SJLJ_SETJMP(INCHAIN, buffer) This corresponds to the eh.sjlj....

Definition ISDOpcodes.h:157

@ TRUNCATE

TRUNCATE - Completely drop the high bits.

Definition ISDOpcodes.h:844

@ ROTL

Definition ISDOpcodes.h:765

@ BlockAddress

Definition ISDOpcodes.h:94

@ SHL_PARTS

SHL_PARTS/SRA_PARTS/SRL_PARTS - These operators are used for expanded integer shift operations.

Definition ISDOpcodes.h:821

@ AssertSext

AssertSext, AssertZext - These nodes record if a register contains a value that has already been zero...

Definition ISDOpcodes.h:62

@ BITREVERSE

Definition ISDOpcodes.h:775

@ FCOPYSIGN

FCOPYSIGN(X, Y) - Return the value of X with the sign of Y.

Definition ISDOpcodes.h:527

@ SADDSAT

RESULT = [US]ADDSAT(LHS, RHS) - Perform saturation addition on 2 integers with the same bit width (W)...

Definition ISDOpcodes.h:360

@ AssertZext

Definition ISDOpcodes.h:63

@ SMAX

Definition ISDOpcodes.h:725

@ STRICT_FRINT

Definition ISDOpcodes.h:450

@ VECTOR_DEINTERLEAVE

VECTOR_DEINTERLEAVE(VEC1, VEC2, ...) - Returns N vectors from N input vectors, where N is the factor ...

Definition ISDOpcodes.h:617

@ UMAX

Definition ISDOpcodes.h:727

@ TRUNCATE_SSAT_S

TRUNCATE_[SU]SAT_[SU] - Truncate for saturated operand [SU] located in middle, prefix for SAT means i...

Definition ISDOpcodes.h:859

@ ABDS

ABDS/ABDU - Absolute difference - Return the absolute difference between two numbers interpreted as s...

Definition ISDOpcodes.h:719

@ TRUNCATE_USAT_U

Definition ISDOpcodes.h:863

@ SADDO_CARRY

Carry-using overflow-aware nodes for multiple precision addition and subtraction.

Definition ISDOpcodes.h:333

@ INTRINSIC_W_CHAIN

RESULT,OUTCHAIN = INTRINSIC_W_CHAIN(INCHAIN, INTRINSICID, arg1, ...) This node represents a target in...

Definition ISDOpcodes.h:208

@ STRICT_FACOS

Definition ISDOpcodes.h:439

@ TargetGlobalTLSAddress

Definition ISDOpcodes.h:181

@ ABDU

Definition ISDOpcodes.h:720

@ BUILD_VECTOR

BUILD_VECTOR(ELT0, ELT1, ELT2, ELT3,...) - Return a fixed-width vector with the specified,...

Definition ISDOpcodes.h:549

@ LOOP_DEPENDENCE_WAR_MASK

Set rounding mode.

Definition ISDOpcodes.h:1574

bool isIndexTypeSigned(MemIndexType IndexType)

Definition ISDOpcodes.h:1671

bool isExtVecInRegOpcode(unsigned Opcode)

Definition ISDOpcodes.h:1781

LLVM_ABI NodeType getExtForLoadExtType(bool IsFP, LoadExtType)

bool isFPEqualitySetCC(CondCode Code)

Return true if this is a setcc instruction that performs an equality comparison when used with floati...

Definition ISDOpcodes.h:1756

bool isExtOpcode(unsigned Opcode)

Definition ISDOpcodes.h:1776

static const int LAST_LOADEXT_TYPE

Definition ISDOpcodes.h:1687

LLVM_ABI bool isVPBinaryOp(unsigned Opcode)

Whether this is a vector-predicated binary operation opcode.

LLVM_ABI CondCode getSetCCInverse(CondCode Operation, EVT Type)

Return the operation corresponding to !(X op Y), where 'op' is a valid SetCC operation.

LLVM_ABI std::optional< unsigned > getBaseOpcodeForVP(unsigned Opcode, bool hasFPExcept)

Translate this VP Opcode to its corresponding non-VP Opcode.

bool isBitwiseLogicOp(unsigned Opcode)

Whether this is bitwise logic opcode.

Definition ISDOpcodes.h:1592

bool isTrueWhenEqual(CondCode Cond)

Return true if the specified condition returns true if the two operands to the condition are equal.

Definition ISDOpcodes.h:1763

LLVM_ABI std::optional< unsigned > getVPMaskIdx(unsigned Opcode)

The operand position of the vector mask.

static const int LAST_MEM_INDEX_TYPE

Definition ISDOpcodes.h:1669

unsigned getUnorderedFlavor(CondCode Cond)

This function returns 0 if the condition is always false if an operand is a NaN, 1 if the condition i...

Definition ISDOpcodes.h:1768

LLVM_ABI std::optional< unsigned > getVPExplicitVectorLengthIdx(unsigned Opcode)

The operand position of the explicit vector length parameter.

LLVM_ABI CondCode getSetCCSwappedOperands(CondCode Operation)

Return the operation corresponding to (Y op X) when given the operation for (X op Y).

LLVM_ABI std::optional< unsigned > getVPForBaseOpcode(unsigned Opcode)

Translate this non-VP Opcode to its corresponding VP Opcode.

MemIndexType

MemIndexType enum - This enum defines how to interpret MGATHER/SCATTER's index parameter when calcula...

Definition ISDOpcodes.h:1667

@ SIGNED_SCALED

Definition ISDOpcodes.h:1667

@ UNSIGNED_SCALED

Definition ISDOpcodes.h:1667

bool isSignedIntSetCC(CondCode Code)

Return true if this is a setcc instruction that performs a signed comparison when used with integer o...

Definition ISDOpcodes.h:1738

LLVM_ABI NodeType getInverseMinMaxOpcode(unsigned MinMaxOpc)

Given a MinMaxOpc of ISD::(U|S)MIN or ISD::(U|S)MAX, returns ISD::(U|S)MAX and ISD::(U|S)MIN,...

LLVM_ABI bool isVPReduction(unsigned Opcode)

Whether this is a vector-predicated reduction opcode.

MemIndexedMode

MemIndexedMode enum - This enum defines the load / store indexed addressing modes.

Definition ISDOpcodes.h:1654

@ POST_DEC

Definition ISDOpcodes.h:1654

@ PRE_DEC

Definition ISDOpcodes.h:1654

@ POST_INC

Definition ISDOpcodes.h:1654

@ PRE_INC

Definition ISDOpcodes.h:1654

@ UNINDEXED

Definition ISDOpcodes.h:1654

CondCode

ISD::CondCode enum - These are ordered carefully to make the bitfields below work out,...

Definition ISDOpcodes.h:1705

@ SETOEQ

Definition ISDOpcodes.h:1708

@ SETUNE

Definition ISDOpcodes.h:1721

@ SETUEQ

Definition ISDOpcodes.h:1716

@ SETTRUE2

Definition ISDOpcodes.h:1731

@ SETOLE

Definition ISDOpcodes.h:1712

@ SETOLT

Definition ISDOpcodes.h:1711

@ SETNE

Definition ISDOpcodes.h:1730

@ SETUGT

Definition ISDOpcodes.h:1717

@ SETOGT

Definition ISDOpcodes.h:1709

@ SETULT

Definition ISDOpcodes.h:1719

@ SETUO

Definition ISDOpcodes.h:1715

@ SETONE

Definition ISDOpcodes.h:1713

@ SETGT

Definition ISDOpcodes.h:1726

@ SETFALSE2

Definition ISDOpcodes.h:1724

@ SETLT

Definition ISDOpcodes.h:1728

@ SETO

Definition ISDOpcodes.h:1714

@ SETGE

Definition ISDOpcodes.h:1727

@ SETTRUE

Definition ISDOpcodes.h:1722

@ SETUGE

Definition ISDOpcodes.h:1718

@ SETLE

Definition ISDOpcodes.h:1729

@ SETULE

Definition ISDOpcodes.h:1720

@ SETOGE

Definition ISDOpcodes.h:1710

@ SETFALSE

Definition ISDOpcodes.h:1707

@ SETEQ

Definition ISDOpcodes.h:1725

@ SETCC_INVALID

Definition ISDOpcodes.h:1733

LLVM_ABI NodeType getVecReduceBaseOpcode(unsigned VecReduceOpcode)

Get underlying scalar opcode for VECREDUCE opcode.

LoadExtType

LoadExtType enum - This enum defines the three variants of LOADEXT (load with extension).

Definition ISDOpcodes.h:1685

@ NON_EXTLOAD

Definition ISDOpcodes.h:1685

@ SEXTLOAD

Definition ISDOpcodes.h:1685

@ ZEXTLOAD

Definition ISDOpcodes.h:1685

@ EXTLOAD

Definition ISDOpcodes.h:1685

bool isUnsignedIntSetCC(CondCode Code)

Return true if this is a setcc instruction that performs an unsigned comparison when used with intege...

Definition ISDOpcodes.h:1744

static const int LAST_INDEXED_MODE

Definition ISDOpcodes.h:1656

LLVM_ABI bool isVPOpcode(unsigned Opcode)

Whether this is a vector-predicated Opcode.

LLVM_ABI CondCode getSetCCOrOperation(CondCode Op1, CondCode Op2, EVT Type)

Return the result of a logical OR between different comparisons of identical values: ((X op1 Y) | (X ...

bool isIntEqualitySetCC(CondCode Code)

Return true if this is a setcc instruction that performs an equality comparison when used with intege...

Definition ISDOpcodes.h:1750

This is an optimization pass for GlobalISel generic memory operations.