plu/andp: add tests with sm

This commit is contained in:
Denis Drakhnia 2023-12-24 09:03:41 +02:00
parent 773f9c90f8
commit 651d474982
10 changed files with 253 additions and 39 deletions

View File

@ -85,7 +85,21 @@ asm_tests = {
},
'plu': {
'andp-1': {},
'landp-1': {},
'andp-2': {},
'andp-3': { 'should_fail': true },
'andp-4': { 'should_fail': true },
'andp-5': { 'should_fail': true },
'andp-6': { 'should_fail': true },
'andp-7': { 'should_fail': true },
'andp-8': { 'should_fail': true },
'landp-1': { 'src': 'andp-1' },
'landp-2': { 'src': 'andp-2', 'c_args': ['-DOP=landp'] },
'landp-3': { 'src': 'andp-3', 'c_args': ['-DOP=landp'], 'should_fail': true },
'landp-4': { 'src': 'andp-4', 'c_args': ['-DOP=landp'], 'should_fail': true },
'landp-5': { 'src': 'andp-5', 'c_args': ['-DOP=landp'], 'should_fail': true },
'landp-6': { 'src': 'andp-6', 'c_args': ['-DOP=landp'], 'should_fail': true },
'landp-7': { 'src': 'andp-7', 'c_args': ['-DOP=landp'], 'should_fail': true },
'landp-8': { 'src': 'andp-8', 'c_args': ['-DOP=landp'], 'should_fail': true },
'movep-1': {},
'cascading-1': {},
'cascading-2': {},

View File

@ -1,5 +1,9 @@
#include "test_start.S"
#ifndef OP
# define OP andp
#endif
{
cmpbsb,0 0, 0, %pred0
cmpesb,1 0, 0, %pred1
@ -7,20 +11,20 @@
{
pass %pred0, @p0
pass %pred1, @p1
andp @p0, @p0, @p4
OP @p0, @p0, @p4
pass @p4, %pred2
andp @p0, @p1, @p5
OP @p0, @p1, @p5
pass @p5, %pred3
andp @p1, @p0, @p6
OP @p1, @p0, @p6
pass @p6, %pred4
}
{
nop 2
pass %pred0, @p0
pass %pred1, @p1
andp @p1, @p1, @p4
OP @p1, @p1, @p4
pass @p4, %pred5
}

69
tests/asm/plu/andp-2.S Normal file
View File

@ -0,0 +1,69 @@
#include "test_start.S"
#ifndef OP
# define OP andp
#endif
invalid64 %g16
{
cmpesb,0,sm %g16, %g16, %pred0
cmpesb,1 0, 0, %pred1
cmpesb,3 0, 1, %pred2
}
{
pass %pred0, @p0
pass %pred1, @p1
OP @p0, @p1, @p4
pass @p4, %pred2
}
{
cmpesb,0 0, 0, %pred0
cmpesb,1,sm %g16, %g16, %pred1
cmpesb,3 0, 1, %pred2
}
{
pass %pred0, @p0
pass %pred1, @p1
OP @p0, @p1, @p4
pass @p4, %pred2
}
{
cmpesb,0,sm %g16, %g16, %pred0
cmpesb,1,sm %g16, %g16, %pred1
cmpesb,3 0, 1, %pred2
}
{
pass %pred0, @p0
pass %pred1, @p1
OP @p0, @p1, @p4
pass @p4, %pred2
}
{
cmpesb,0,sm %g16, %g16, %pred0
cmpesb,1,sm %g16, %g16, %pred1
cmpesb,3,sm %g16, %g16, %pred2
cmpesb,4,sm %g16, %g16, %pred3
}
{
cmpesb,0 0, 1, %pred4
cmpesb,1 0, 1, %pred5
cmpesb,3 0, 1, %pred6
cmpesb,4 0, 1, %pred7
}
{
pass %pred0, @p0
pass %pred1, @p1
pass %pred2, @p2
pass %pred3, @p3
OP @p0, @p1, @p4
OP @p2, @p3, @p5
OP @p4, @p5, @p6
pass @p4, %pred4
pass @p5, %pred5
pass @p6, %pred6
}
#include "test_end.S"

21
tests/asm/plu/andp-3.S Normal file
View File

@ -0,0 +1,21 @@
#include "test_start.S"
#ifndef OP
# define OP andp
#endif
invalid64 %g16
{
cmpesb,0,sm %g16, %g16, %pred0
cmpesb,1 0, 0, %pred1
cmpesb,3 0, 1, %pred2
}
{
pass %pred0, @p0
pass %pred1, @p1
OP ~@p0, @p1, @p4
pass @p4, %pred2
}
addd,0 0, 0, %empty ? %pred2
#include "test_end.S"

21
tests/asm/plu/andp-4.S Normal file
View File

@ -0,0 +1,21 @@
#include "test_start.S"
#ifndef OP
# define OP andp
#endif
invalid64 %g16
{
cmpesb,0 0, 0, %pred0
cmpesb,1,sm %g16, %g16, %pred1
cmpesb,3 0, 1, %pred2
}
{
pass %pred0, @p0
pass %pred1, @p1
OP @p0, ~@p1, @p4
pass @p4, %pred2
}
addd,0 0, 0, %empty ? %pred2
#include "test_end.S"

21
tests/asm/plu/andp-5.S Normal file
View File

@ -0,0 +1,21 @@
#include "test_start.S"
#ifndef OP
# define OP andp
#endif
invalid64 %g16
{
cmpesb,0,sm %g16, %g16, %pred0
cmpesb,1,sm %g16, %g16, %pred1
cmpesb,3 0, 1, %pred2
}
{
pass %pred0, @p0
pass %pred1, @p1
OP ~@p0, ~@p1, @p4
pass @p4, %pred2
}
addd,0 0, 0, %empty ? %pred2
#include "test_end.S"

30
tests/asm/plu/andp-6.S Normal file
View File

@ -0,0 +1,30 @@
#include "test_start.S"
#ifndef OP
# define OP andp
#endif
invalid64 %g16
{
cmpesb,0,sm %g16, %g16, %pred0
cmpesb,1,sm %g16, %g16, %pred1
cmpesb,3 0, 0, %pred2
cmpesb,4 0, 0, %pred3
}
{
cmpesb,0 0, 1, %pred4
cmpesb,1 0, 1, %pred5
}
{
pass %pred0, @p0
pass %pred1, @p1
pass %pred2, @p2
pass %pred3, @p3
landp ~@p0, ~@p1, @p4
OP @p4, @p2, @p5
pass @p4, %pred4
pass @p5, %pred5
}
addd,0 0, 0, %empty ? %pred5
#include "test_end.S"

34
tests/asm/plu/andp-7.S Normal file
View File

@ -0,0 +1,34 @@
#include "test_start.S"
#ifndef OP
# define OP andp
#endif
invalid64 %g16
{
cmpesb,0,sm %g16, %g16, %pred0
cmpesb,1,sm %g16, %g16, %pred1
cmpesb,3 0, 0, %pred2
cmpesb,4 0, 0, %pred3
}
{
cmpesb,0 0, 1, %pred4
cmpesb,1 0, 1, %pred5
cmpesb,3 0, 1, %pred6
cmpesb,4 0, 1, %pred7
}
{
pass %pred0, @p0
pass %pred1, @p1
pass %pred2, @p2
pass %pred3, @p3
landp ~@p0, ~@p1, @p4
landp @p2, @p3, @p5
OP @p4, @p5, @p6
pass @p4, %pred4
pass @p5, %pred5
pass @p6, %pred6
}
addd,0 0, 0, %empty ? %pred6
#include "test_end.S"

34
tests/asm/plu/andp-8.S Normal file
View File

@ -0,0 +1,34 @@
#include "test_start.S"
#ifndef OP
# define OP andp
#endif
invalid64 %g16
{
cmpesb,0,sm %g16, %g16, %pred0
cmpesb,1,sm %g16, %g16, %pred1
cmpesb,3,sm %g16, %g16, %pred2
cmpesb,4,sm %g16, %g16, %pred3
}
{
cmpesb,0 0, 1, %pred4
cmpesb,1 0, 1, %pred5
cmpesb,3 0, 1, %pred6
cmpesb,4 0, 1, %pred7
}
{
pass %pred0, @p0
pass %pred1, @p1
pass %pred2, @p2
pass %pred3, @p3
landp ~@p0, ~@p1, @p4
landp ~@p2, ~@p3, @p5
OP @p4, @p5, @p6
pass @p4, %pred4
pass @p5, %pred5
pass @p6, %pred6
}
addd,0 0, 0, %empty ? %pred6
#include "test_end.S"

View File

@ -1,34 +0,0 @@
#include "test_start.S"
{
cmpbsb,0 0, 0, %pred0
cmpesb,1 0, 0, %pred1
}
{
pass %pred0, @p0
pass %pred1, @p1
landp @p0, @p0, @p4
pass @p4, %pred2
landp @p0, @p1, @p5
pass @p5, %pred3
landp @p1, @p0, @p6
pass @p6, %pred4
}
{
nop 2
pass %pred0, @p0
pass %pred1, @p1
landp @p1, @p1, @p4
pass @p4, %pred5
}
assert(~%pred0)
assert( %pred1)
assert(~%pred2)
assert(~%pred3)
assert(~%pred4)
assert( %pred5)
#include "test_end.S"