1; RUN: llc -mtriple=x86_64-linux -mcpu=atom < %s | FileCheck %s 2; RUN: llc -mtriple=x86_64-linux -mcpu=slm < %s | FileCheck %s -check-prefix=SLM 3 4declare i16 @llvm.bswap.i16(i16) nounwind readnone 5declare i32 @llvm.bswap.i32(i32) nounwind readnone 6declare i64 @llvm.bswap.i64(i64) nounwind readnone 7 8define void @test1(i16* nocapture %x, i16 %y) nounwind { 9 %bswap = call i16 @llvm.bswap.i16(i16 %y) 10 store i16 %bswap, i16* %x, align 2 11 ret void 12; CHECK-LABEL: test1: 13; CHECK: movbew %si, (%rdi) 14; SLM-LABEL: test1: 15; SLM: movbew %si, (%rdi) 16} 17 18define i16 @test2(i16* %x) nounwind { 19 %load = load i16, i16* %x, align 2 20 %bswap = call i16 @llvm.bswap.i16(i16 %load) 21 ret i16 %bswap 22; CHECK-LABEL: test2: 23; CHECK: movbew (%rdi), %ax 24; SLM-LABEL: test2: 25; SLM: movbew (%rdi), %ax 26} 27 28define void @test3(i32* nocapture %x, i32 %y) nounwind { 29 %bswap = call i32 @llvm.bswap.i32(i32 %y) 30 store i32 %bswap, i32* %x, align 4 31 ret void 32; CHECK-LABEL: test3: 33; CHECK: movbel %esi, (%rdi) 34; SLM-LABEL: test3: 35; SLM: movbel %esi, (%rdi) 36} 37 38define i32 @test4(i32* %x) nounwind { 39 %load = load i32, i32* %x, align 4 40 %bswap = call i32 @llvm.bswap.i32(i32 %load) 41 ret i32 %bswap 42; CHECK-LABEL: test4: 43; CHECK: movbel (%rdi), %eax 44; SLM-LABEL: test4: 45; SLM: movbel (%rdi), %eax 46} 47 48define void @test5(i64* %x, i64 %y) nounwind { 49 %bswap = call i64 @llvm.bswap.i64(i64 %y) 50 store i64 %bswap, i64* %x, align 8 51 ret void 52; CHECK-LABEL: test5: 53; CHECK: movbeq %rsi, (%rdi) 54; SLM-LABEL: test5: 55; SLM: movbeq %rsi, (%rdi) 56} 57 58define i64 @test6(i64* %x) nounwind { 59 %load = load i64, i64* %x, align 8 60 %bswap = call i64 @llvm.bswap.i64(i64 %load) 61 ret i64 %bswap 62; CHECK-LABEL: test6: 63; CHECK: movbeq (%rdi), %rax 64; SLM-LABEL: test6: 65; SLM: movbeq (%rdi), %rax 66} 67