[InstCombine] Don't assume m_Mul gives back an Instruction
[oota-llvm.git] / test / Bitcode / conversionInstructions.3.2.ll
index 4b3f27386eff97b69a9a6ef9794a0c31f97f1141..ae2d65eb2b6179adc85f1614bc0121906ef3081c 100644 (file)
-; RUN:  llvm-dis < %s.bc| FileCheck %s\r
-\r
-; conversionOperations.3.2.ll.bc was generated by passing this file to llvm-as-3.2.\r
-; The test checks that LLVM does not misread conversion instructions from\r
-; older bitcode files.\r
-\r
-define void @trunc(i32 %src){\r
-entry:\r
-; CHECK: %res1 = trunc i32 %src to i8\r
-  %res1 = trunc i32 %src to i8\r
-    \r
-  ret void\r
-}\r
-\r
-define void @zext(i32 %src){\r
-entry:\r
-; CHECK: %res1 = zext i32 %src to i64\r
-  %res1 = zext i32 %src to i64\r
-    \r
-  ret void\r
-}\r
-\r
-define void @sext(i32 %src){\r
-entry:\r
-; CHECK: %res1 = sext i32 %src to i64\r
-  %res1 = sext i32 %src to i64\r
-    \r
-  ret void\r
-}\r
-\r
-define void @fptrunc(double %src){\r
-entry:\r
-; CHECK: %res1 = fptrunc double %src to float\r
-  %res1 = fptrunc double %src to float\r
-  \r
-  ret void\r
-}\r
-\r
-define void @fpext(float %src){\r
-entry:\r
-; CHECK: %res1 = fpext float %src to double\r
-  %res1 = fpext float %src to double\r
-  \r
-  ret void\r
-}\r
-\r
-define void @fptoui(float %src){\r
-entry:\r
-; CHECK: %res1 = fptoui float %src to i32\r
-  %res1 = fptoui float %src to i32\r
-  \r
-  ret void\r
-}\r
-\r
-define void @fptosi(float %src){\r
-entry:\r
-; CHECK: %res1 = fptosi float %src to i32\r
-  %res1 = fptosi float %src to i32\r
-  \r
-  ret void\r
-}\r
-\r
-define void @uitofp(i32 %src){\r
-entry:\r
-; CHECK: %res1 = uitofp i32 %src to float\r
-  %res1 = uitofp i32 %src to float\r
-  \r
-  ret void\r
-}\r
-\r
-define void @sitofp(i32 %src){\r
-entry:\r
-; CHECK: %res1 = sitofp i32 %src to float\r
-  %res1 = sitofp i32 %src to float\r
-  \r
-  ret void\r
-}\r
-\r
-define void @ptrtoint(i32* %src){\r
-entry:\r
-; CHECK: %res1 = ptrtoint i32* %src to i8\r
-  %res1 = ptrtoint i32* %src to i8\r
-  \r
-  ret void\r
-}\r
-\r
-define void @inttoptr(i32 %src){\r
-entry:\r
-; CHECK: %res1 = inttoptr i32 %src to i32*\r
-  %res1 = inttoptr i32 %src to i32*\r
-  \r
-  ret void\r
-}\r
-\r
-define void @bitcast(i32 %src1, i32* %src2){\r
-entry:\r
-; CHECK: %res1 = bitcast i32 %src1 to i32\r
-  %res1 = bitcast i32 %src1 to i32\r
-  \r
-; CHECK: %res2 = bitcast i32* %src2 to i64*\r
-  %res2 = bitcast i32* %src2 to i64*\r
-  \r
-  ret void\r
-}
\ No newline at end of file
+; RUN:  llvm-dis < %s.bc| FileCheck %s
+
+; conversionInstructions.3.2.ll.bc was generated by passing this file to llvm-as-3.2.
+; The test checks that LLVM does not misread conversion instructions from
+; older bitcode files.
+
+define void @trunc(i32 %src){
+entry:
+; CHECK: %res1 = trunc i32 %src to i8
+  %res1 = trunc i32 %src to i8
+    
+  ret void
+}
+
+define void @zext(i32 %src){
+entry:
+; CHECK: %res1 = zext i32 %src to i64
+  %res1 = zext i32 %src to i64
+    
+  ret void
+}
+
+define void @sext(i32 %src){
+entry:
+; CHECK: %res1 = sext i32 %src to i64
+  %res1 = sext i32 %src to i64
+    
+  ret void
+}
+
+define void @fptrunc(double %src){
+entry:
+; CHECK: %res1 = fptrunc double %src to float
+  %res1 = fptrunc double %src to float
+  
+  ret void
+}
+
+define void @fpext(float %src){
+entry:
+; CHECK: %res1 = fpext float %src to double
+  %res1 = fpext float %src to double
+  
+  ret void
+}
+
+define void @fptoui(float %src){
+entry:
+; CHECK: %res1 = fptoui float %src to i32
+  %res1 = fptoui float %src to i32
+  
+  ret void
+}
+
+define void @fptosi(float %src){
+entry:
+; CHECK: %res1 = fptosi float %src to i32
+  %res1 = fptosi float %src to i32
+  
+  ret void
+}
+
+define void @uitofp(i32 %src){
+entry:
+; CHECK: %res1 = uitofp i32 %src to float
+  %res1 = uitofp i32 %src to float
+  
+  ret void
+}
+
+define void @sitofp(i32 %src){
+entry:
+; CHECK: %res1 = sitofp i32 %src to float
+  %res1 = sitofp i32 %src to float
+  
+  ret void
+}
+
+define void @ptrtoint(i32* %src){
+entry:
+; CHECK: %res1 = ptrtoint i32* %src to i8
+  %res1 = ptrtoint i32* %src to i8
+  
+  ret void
+}
+
+define void @inttoptr(i32 %src){
+entry:
+; CHECK: %res1 = inttoptr i32 %src to i32*
+  %res1 = inttoptr i32 %src to i32*
+  
+  ret void
+}
+
+define void @bitcast(i32 %src1, i32* %src2){
+entry:
+; CHECK: %res1 = bitcast i32 %src1 to i32
+  %res1 = bitcast i32 %src1 to i32
+  
+; CHECK: %res2 = bitcast i32* %src2 to i64*
+  %res2 = bitcast i32* %src2 to i64*
+  
+  ret void
+}
+
+define void @ptrtointInstr(i32* %ptr, <4 x i32*> %vecPtr){
+entry:
+; CHECK: %res1 = ptrtoint i32* %ptr to i8
+  %res1 = ptrtoint i32* %ptr to i8  
+; CHECK-NEXT: %res2 = ptrtoint <4 x i32*> %vecPtr to <4 x i64>
+  %res2 = ptrtoint <4 x i32*> %vecPtr to <4 x i64>
+  
+  ret void
+}
+
+define void @inttoptrInstr(i32 %x, <4 x i32> %vec){
+entry:
+; CHECK: %res1 = inttoptr i32 %x to i64*
+  %res1 = inttoptr i32 %x to i64*
+; CHECK-NEXT: inttoptr <4 x i32> %vec to <4 x i8*>
+  %res2 = inttoptr <4 x i32> %vec to <4 x i8*>
+  
+  ret void
+}