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 4declare i32 @llvm.x86.sse42.crc32.32.8(i32, i8) nounwind 5declare i32 @llvm.x86.sse42.crc32.32.16(i32, i16) nounwind 6declare i32 @llvm.x86.sse42.crc32.32.32(i32, i32) nounwind 7 8define 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 19define 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 30define 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