Features
What's New
Tutorial
Download
Support
 
Quexal Logo

Development environment
Quexal offers a rich graphical user interface that turns MMX / SSE / SSE2 integer programming into a point-and-click task.

Development Environment

The programmer works with variables and basic operations just like in high-level languages. This abstraction layer flattens the learning curve and shortens the development cycle.

Graphical Interface

The graphical display of the source code helps you gain more insight into the structure of the algorithm you are developing, and lets you visually detect bottlenecks in the logic of the code that would harm the performance of optimized code.
Frequently used code fragments can be saved as macros, and Quexal provides a macro library that streamlines common MMX / SSE programming tasks.

Download Quexal

Optimizing compiler
The Quexal compiler turns source code into highly optimized assembly code, ready to be pasted into your development environment of choice. Quexal supports the following languages:

  • Microsoft Visual C++
  • Borland C++ Builder
  • Borland Delphi
  • Intel / Microsoft C++ Intrinsics
The compiler performs extensive error checking tests on source code to catch partially or incorrectly defined instructions and uninitialized variables.
The SSE / SSE2 bytecode compiler lets you use SSE / SSE2 integer instructions even if your development environment does not support them by turning source instructions directly in machine bytecode. Delphi programmers can also enable the MMX bytecode compiler.
You can also choose to optimize the source code for the following processors:

Download Quexal


Performance analysis
Quexal includes break-through analysis tools, that let you see how the optimized code runs on the Pentium III / Athlon / Pentium 4 micro architectures. Pinpointing performance bottlenecks is therefore much easier and faster.

Parallelism Chart

Download Quexal

Error detection
Quexal includes a visual Debugger that re-arranges source code in a graph showing dependency bonds among instructions. You can enter source values and analyze what the instructions defined in source code do, and therefore easily detect troublesome spots.

Visual Debugger

The Visual Debugger lets you effectively test your code without even compiling and running it! You can enter the data values that are read at the beginning of the loop and check the output values at the bottom of the loop: if they do not match the correct ones, you can move up from the latest instructions step by step (or move down from the first ones) and find out where are the bugs: when you can see at the same time all values assigned to a variable during the computation, it is much easier to discover errors.
Thanks to the SSE / SSE2 emulator, you can also design and test SSE / SSE2 code on a CPU without SSE / SSE2 extensions.

Download Quexal

Supported Instructions

  • MMX Instructions: MOVD, MOVQ, PACKSSDW, PACKSSWB, PACKUSWB, PADDB, PADDW, PADDD, PADDSB, PADDSW, PADDUSB, PADDUSW, PAND, PANDN, PCMPEQB, PCMPEQW, PCMPEQD, PCMPGTB, PCMPGTW, PCMPGTD, PMADDWD, PMULHW, PMULLW, POR, PSLLD, PSLLW, PSLLQ, PSRAD, PSRAW, PSRLW, PSRLD, PSRLQ, PSUBB, PSUBW, PSUBD, PSUBSB, PSUBSW, PSUBUSB, PSUBUSW, PUNPCKHBW, PUNPCKHDQ, PUNPCKHWD, PUNPCKLBW, PUNPCKLWD, PUNPCKLDQ, PXOR, EMMS;
  • SSE Instructions: PSHUFW, PSADW, PMINUB, PMINSW, PMAXUB, PMAXSW, PMULHUW, PAVGB, PAVGW, PINSRW, PEXTRW, PMOVMSKB;
  • SSE2 Instructions: PADDQ, PSUBQ, PMULUDQ;
  • x86 Instructions: MOV, INC, DEC, ADD, SUB, JMP, conditional jumps, generic assembly line, comment line.


Copyright Stefano Tommesani 2000/06 - All trademarks belong to their respective holders