33 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			LLVM
		
	
	
	
; RUN: llvm-as < %s | llvm-dis -disable-output
 | 
						|
; RUN: verify-uselistorder < %s
 | 
						|
 | 
						|
; <rdar://problem/8622574>
 | 
						|
; tests the bitcodereader can handle the case where the reader will initially
 | 
						|
; create shuffle with a place holder mask.
 | 
						|
 | 
						|
 | 
						|
define <4 x float> @test(<2 x double> %d2)  {
 | 
						|
entry:
 | 
						|
  %call20.i = tail call <4 x float> @cmp(<2 x double> %d2,
 | 
						|
                                        <2 x double> bitcast (
 | 
						|
                                          <4 x float> shufflevector (
 | 
						|
                                            <3 x float> shufflevector (
 | 
						|
                                              <4 x float> shufflevector (
 | 
						|
                                                <3 x float> bitcast (
 | 
						|
                                                  i96 trunc (
 | 
						|
                                                    i128 bitcast (<2 x double> bitcast (
 | 
						|
                                                      <4 x i32> <i32 0, i32 0, i32 0, i32 undef> to <2 x double>)
 | 
						|
                                                    to i128) to i96)
 | 
						|
                                                  to <3 x float>),
 | 
						|
                                                <3 x float> undef,
 | 
						|
                                                <4 x i32> <i32 0, i32 1, i32 2, i32 undef>),
 | 
						|
                                              <4 x float> undef,
 | 
						|
                                            <3 x i32> <i32 0, i32 1, i32 2>),
 | 
						|
                                            <3 x float> undef,
 | 
						|
                                            <4 x i32> <i32 0, i32 1, i32 2, i32 undef>)
 | 
						|
                                          to <2 x double>))
 | 
						|
  ret <4 x float> %call20.i
 | 
						|
}
 | 
						|
 | 
						|
declare <4 x float> @cmp(<2 x double>, <2 x double>)
 |