diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-07-16 15:04:42 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-07-16 15:04:42 -0700 |
commit | 535d77186f49307e08072e3c1e82c89b6848c7a7 (patch) | |
tree | 74b254fa5dee5012e699190a51032799dbe4a5e7 /tests | |
parent | d8f3b43e24bf15b6696a705e0822a0dd53de74fe (diff) |
optimize bswap
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/runner.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/runner.py b/tests/runner.py index f3438e64..bf971996 100755 --- a/tests/runner.py +++ b/tests/runner.py @@ -978,6 +978,36 @@ m_divisor is 1091269979 ''' self.do_run(src, ',0,,2,C!,0,C!,0,,65535,C!,0,') + def test_bswap(self): + if self.emcc_args == None: return self.skip('needs ta2') + + src = r''' + #include <stdio.h> + + extern "C" { + extern unsigned short llvm_bswap_i16(unsigned short x); + extern unsigned int llvm_bswap_i32(unsigned int x); + } + + int main(void) { + unsigned short x = 0xc8ef; + printf("%x,%x\n", x&0xff, x >> 8); + x = llvm_bswap_i16(x); + printf("%x,%x\n", x&0xff, x >> 8); + + unsigned int y = 0xc5de158a; + printf("%x,%x,%x,%x\n", y&0xff, (y>>8)&0xff, (y>>16)&0xff, (y>>24)&0xff); + y = llvm_bswap_i32(y); + printf("%x,%x,%x,%x\n", y&0xff, (y>>8)&0xff, (y>>16)&0xff, (y>>24)&0xff); + return 0; + } + ''' + self.do_run(src, '''ef,c8 +c8,ef +8a,15,de,c5 +c5,de,15,8a +''') + def test_sha1(self): if self.emcc_args == None: return self.skip('needs ta2') |