Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -mtriple=i686-apple-darwin9 -mattr=sse4.2 | FileCheck %s -check-prefix=X32
      2 ; RUN: llc < %s -mtriple=x86_64-apple-darwin9 -mattr=sse4.2 | FileCheck %s -check-prefix=X64
      3 
      4 declare i32 @llvm.x86.sse42.crc32.32.8(i32, i8) nounwind
      5 declare i32 @llvm.x86.sse42.crc32.32.16(i32, i16) nounwind
      6 declare i32 @llvm.x86.sse42.crc32.32.32(i32, i32) nounwind
      7 
      8 define i32 @crc32_32_8(i32 %a, i8 %b) nounwind {
      9   %tmp = call i32 @llvm.x86.sse42.crc32.32.8(i32 %a, i8 %b)
     10   ret i32 %tmp
     11 ; X32: _crc32_32_8:
     12 ; X32:     crc32b   8(%esp), %eax
     13 
     14 ; X64: _crc32_32_8:
     15 ; X64:     crc32b   %sil,
     16 }
     17 
     18 
     19 define i32 @crc32_32_16(i32 %a, i16 %b) nounwind {
     20   %tmp = call i32 @llvm.x86.sse42.crc32.32.16(i32 %a, i16 %b)
     21   ret i32 %tmp
     22 ; X32: _crc32_32_16:
     23 ; X32:     crc32w   8(%esp), %eax
     24 
     25 ; X64: _crc32_32_16:
     26 ; X64:     crc32w   %si,
     27 }
     28 
     29 
     30 define i32 @crc32_32_32(i32 %a, i32 %b) nounwind {
     31   %tmp = call i32 @llvm.x86.sse42.crc32.32.32(i32 %a, i32 %b)
     32   ret i32 %tmp
     33 ; X32: _crc32_32_32:
     34 ; X32:     crc32l   8(%esp), %eax
     35 
     36 ; X64: _crc32_32_32:
     37 ; X64:     crc32l   %esi,
     38 }
     39 
     40