; RUN: llc < %s -mtriple=i686-unknown-linux-gnu -mattr=+sse2 | FileCheck %s --check-prefixes=A,B
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | FileCheck %s --allow-unused-prefixes=true --check-prefixes=C,A,UNUSED
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu | FileCheck %s --allow-unused-prefixes=true --check-prefixe=A
declare <2 x i64> @llvm.bswap.v2i64(<2 x i64>)
define <2 x i64> @fold_v2i64() {
; B-LABEL: fold_v2i64:
; B: # %bb.0: # %entry
; B-NEXT: movaps {{.*#+}} xmm0 = [0,4278190080,4294967295,4294967295]
; B-NEXT: retl
;
; C-LABEL: fold_v2i64:
; C: # %bb.0: # %entry
; C-NEXT: movaps {{.*#+}} xmm0 = [18374686479671623680,18446744073709551615]
; C-NEXT: retq
entry:
%r = call <2 x i64> @llvm.bswap.v2i64(<2 x i64> <i64 255, i64 -1>)
ret <2 x i64> %r
}
declare <4 x i32> @llvm.bswap.v4i32(<4 x i32>)
define <4 x i32> @test2(<4 x i32> %v) {
%r = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %v)
ret <4 x i32> %r
}
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
; A: {{.*}}
; UNUSED: {{.*}}