1; RUN: llc < %s -asm-verbose=false | FileCheck %s 2 3; Test that extending loads are assembled properly. 4 5target datalayout = "e-p:32:32-i64:64-n32:64-S128" 6target triple = "wasm32-unknown-unknown" 7 8; CHECK-LABEL: (func $sext_i8_i32 9; CHECK: (set_local @1 (load_s_i8_i32 @0)) 10define i32 @sext_i8_i32(i8 *%p) { 11 %v = load i8, i8* %p 12 %e = sext i8 %v to i32 13 ret i32 %e 14} 15 16; CHECK-LABEL: (func $zext_i8_i32 17; CHECK: (set_local @1 (load_u_i8_i32 @0)) 18define i32 @zext_i8_i32(i8 *%p) { 19 %v = load i8, i8* %p 20 %e = zext i8 %v to i32 21 ret i32 %e 22} 23 24; CHECK-LABEL: (func $sext_i16_i32 25; CHECK: (set_local @1 (load_s_i16_i32 @0)) 26define i32 @sext_i16_i32(i16 *%p) { 27 %v = load i16, i16* %p 28 %e = sext i16 %v to i32 29 ret i32 %e 30} 31 32; CHECK-LABEL: (func $zext_i16_i32 33; CHECK: (set_local @1 (load_u_i16_i32 @0)) 34define i32 @zext_i16_i32(i16 *%p) { 35 %v = load i16, i16* %p 36 %e = zext i16 %v to i32 37 ret i32 %e 38} 39 40; CHECK-LABEL: (func $sext_i8_i64 41; CHECK: (set_local @1 (load_s_i8_i64 @0)) 42define i64 @sext_i8_i64(i8 *%p) { 43 %v = load i8, i8* %p 44 %e = sext i8 %v to i64 45 ret i64 %e 46} 47 48; CHECK-LABEL: (func $zext_i8_i64 49; CHECK: (set_local @1 (load_u_i8_i64 @0)) 50define i64 @zext_i8_i64(i8 *%p) { 51 %v = load i8, i8* %p 52 %e = zext i8 %v to i64 53 ret i64 %e 54} 55 56; CHECK-LABEL: (func $sext_i16_i64 57; CHECK: (set_local @1 (load_s_i16_i64 @0)) 58define i64 @sext_i16_i64(i16 *%p) { 59 %v = load i16, i16* %p 60 %e = sext i16 %v to i64 61 ret i64 %e 62} 63 64; CHECK-LABEL: (func $zext_i16_i64 65; CHECK: (set_local @1 (load_u_i16_i64 @0)) 66define i64 @zext_i16_i64(i16 *%p) { 67 %v = load i16, i16* %p 68 %e = zext i16 %v to i64 69 ret i64 %e 70} 71 72; CHECK-LABEL: (func $sext_i32_i64 73; CHECK: (set_local @1 (load_s_i32_i64 @0)) 74define i64 @sext_i32_i64(i32 *%p) { 75 %v = load i32, i32* %p 76 %e = sext i32 %v to i64 77 ret i64 %e 78} 79 80; CHECK-LABEL: (func $zext_i32_i64 81; CHECK: (set_local @1 (load_u_i32_i64 @0)) 82define i64 @zext_i32_i64(i32 *%p) { 83 %v = load i32, i32* %p 84 %e = zext i32 %v to i64 85 ret i64 %e 86} 87