; CHECK-LABEL: test0:
; CHECK: loop
-; CHECK: add
+; CHECK: i32.add
; CHECK: br_if
; CHECK: call
; CHECK: br $BB0_1{{$}}
; CHECK-LABEL: test1:
; CHECK: loop
-; CHECK: add
+; CHECK: i32.add
; CHECK: br_if
; CHECK: call
; CHECK: br $BB1_1{{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 1{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq push, (get_local 3), (get_local 3){{$}}
+; CHECK-NEXT: f32.eq push, (get_local 3), (get_local 3){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: eq push, (get_local 2), (get_local 2){{$}}
+; CHECK-NEXT: f32.eq push, (get_local 2), (get_local 2){{$}}
; CHECK-NEXT: set_local 5, pop{{$}}
-; CHECK-NEXT: and push, (get_local 5), (get_local 4){{$}}
+; CHECK-NEXT: i32.and push, (get_local 5), (get_local 4){{$}}
; CHECK-NEXT: set_local 6, pop{{$}}
; CHECK-NEXT: return (get_local 6){{$}}
define i32 @ord_f32(float %x, float %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 1{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: ne push, (get_local 3), (get_local 3){{$}}
+; CHECK-NEXT: f32.ne push, (get_local 3), (get_local 3){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: ne push, (get_local 2), (get_local 2){{$}}
+; CHECK-NEXT: f32.ne push, (get_local 2), (get_local 2){{$}}
; CHECK-NEXT: set_local 5, pop{{$}}
-; CHECK-NEXT: or push, (get_local 5), (get_local 4){{$}}
+; CHECK-NEXT: i32.or push, (get_local 5), (get_local 4){{$}}
; CHECK-NEXT: set_local 6, pop{{$}}
; CHECK-NEXT: return (get_local 6){{$}}
define i32 @uno_f32(float %x, float %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: f32.eq push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @oeq_f32(float %x, float %y) {
}
; CHECK-LABEL: une_f32:
-; CHECK: ne push, (get_local 3), (get_local 2){{$}}
+; CHECK: f32.ne push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @une_f32(float %x, float %y) {
%a = fcmp une float %x, %y
}
; CHECK-LABEL: olt_f32:
-; CHECK: lt push, (get_local 3), (get_local 2){{$}}
+; CHECK: f32.lt push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @olt_f32(float %x, float %y) {
%a = fcmp olt float %x, %y
}
; CHECK-LABEL: ole_f32:
-; CHECK: le push, (get_local 3), (get_local 2){{$}}
+; CHECK: f32.le push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @ole_f32(float %x, float %y) {
%a = fcmp ole float %x, %y
}
; CHECK-LABEL: ogt_f32:
-; CHECK: gt push, (get_local 3), (get_local 2){{$}}
+; CHECK: f32.gt push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @ogt_f32(float %x, float %y) {
%a = fcmp ogt float %x, %y
}
; CHECK-LABEL: oge_f32:
-; CHECK: ge push, (get_local 3), (get_local 2){{$}}
+; CHECK: f32.ge push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @oge_f32(float %x, float %y) {
%a = fcmp oge float %x, %y
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: f32.eq push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: ne push, (get_local 2), (get_local 2){{$}}
+; CHECK-NEXT: f32.ne push, (get_local 2), (get_local 2){{$}}
; CHECK-NEXT: set_local 5, pop{{$}}
-; CHECK-NEXT: ne push, (get_local 3), (get_local 3){{$}}
+; CHECK-NEXT: f32.ne push, (get_local 3), (get_local 3){{$}}
; CHECK-NEXT: set_local 6, pop{{$}}
-; CHECK-NEXT: or push, (get_local 6), (get_local 5){{$}}
+; CHECK-NEXT: i32.or push, (get_local 6), (get_local 5){{$}}
; CHECK-NEXT: set_local 7, pop{{$}}
-; CHECK-NEXT: or push, (get_local 4), (get_local 7){{$}}
+; CHECK-NEXT: i32.or push, (get_local 4), (get_local 7){{$}}
; CHECK-NEXT: set_local 8, pop{{$}}
; CHECK-NEXT: return (get_local 8){{$}}
define i32 @ueq_f32(float %x, float %y) {
}
; CHECK-LABEL: one_f32:
-; CHECK: ne push, (get_local 3), (get_local 2){{$}}
+; CHECK: f32.ne push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @one_f32(float %x, float %y) {
%a = fcmp one float %x, %y
}
; CHECK-LABEL: ult_f32:
-; CHECK: lt push, (get_local 3), (get_local 2){{$}}
+; CHECK: f32.lt push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @ult_f32(float %x, float %y) {
%a = fcmp ult float %x, %y
}
; CHECK-LABEL: ule_f32:
-; CHECK: le push, (get_local 3), (get_local 2){{$}}
+; CHECK: f32.le push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @ule_f32(float %x, float %y) {
%a = fcmp ule float %x, %y
}
; CHECK-LABEL: ugt_f32:
-; CHECK: gt push, (get_local 3), (get_local 2){{$}}
+; CHECK: f32.gt push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @ugt_f32(float %x, float %y) {
%a = fcmp ugt float %x, %y
}
; CHECK-LABEL: uge_f32:
-; CHECK: ge push, (get_local 3), (get_local 2){{$}}
+; CHECK: f32.ge push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @uge_f32(float %x, float %y) {
%a = fcmp uge float %x, %y
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 1{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq push, (get_local 3), (get_local 3){{$}}
+; CHECK-NEXT: f64.eq push, (get_local 3), (get_local 3){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: eq push, (get_local 2), (get_local 2){{$}}
+; CHECK-NEXT: f64.eq push, (get_local 2), (get_local 2){{$}}
; CHECK-NEXT: set_local 5, pop{{$}}
-; CHECK-NEXT: and push, (get_local 5), (get_local 4){{$}}
+; CHECK-NEXT: i32.and push, (get_local 5), (get_local 4){{$}}
; CHECK-NEXT: set_local 6, pop{{$}}
; CHECK-NEXT: return (get_local 6){{$}}
define i32 @ord_f64(double %x, double %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 1{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: ne push, (get_local 3), (get_local 3){{$}}
+; CHECK-NEXT: f64.ne push, (get_local 3), (get_local 3){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: ne push, (get_local 2), (get_local 2){{$}}
+; CHECK-NEXT: f64.ne push, (get_local 2), (get_local 2){{$}}
; CHECK-NEXT: set_local 5, pop{{$}}
-; CHECK-NEXT: or push, (get_local 5), (get_local 4){{$}}
+; CHECK-NEXT: i32.or push, (get_local 5), (get_local 4){{$}}
; CHECK-NEXT: set_local 6, pop{{$}}
; CHECK-NEXT: return (get_local 6){{$}}
define i32 @uno_f64(double %x, double %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: f64.eq push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @oeq_f64(double %x, double %y) {
}
; CHECK-LABEL: une_f64:
-; CHECK: ne push, (get_local 3), (get_local 2){{$}}
+; CHECK: f64.ne push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @une_f64(double %x, double %y) {
%a = fcmp une double %x, %y
}
; CHECK-LABEL: olt_f64:
-; CHECK: lt push, (get_local 3), (get_local 2){{$}}
+; CHECK: f64.lt push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @olt_f64(double %x, double %y) {
%a = fcmp olt double %x, %y
}
; CHECK-LABEL: ole_f64:
-; CHECK: le push, (get_local 3), (get_local 2){{$}}
+; CHECK: f64.le push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @ole_f64(double %x, double %y) {
%a = fcmp ole double %x, %y
}
; CHECK-LABEL: ogt_f64:
-; CHECK: gt push, (get_local 3), (get_local 2){{$}}
+; CHECK: f64.gt push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @ogt_f64(double %x, double %y) {
%a = fcmp ogt double %x, %y
}
; CHECK-LABEL: oge_f64:
-; CHECK: ge push, (get_local 3), (get_local 2){{$}}
+; CHECK: f64.ge push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @oge_f64(double %x, double %y) {
%a = fcmp oge double %x, %y
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: f64.eq push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: ne push, (get_local 2), (get_local 2){{$}}
+; CHECK-NEXT: f64.ne push, (get_local 2), (get_local 2){{$}}
; CHECK-NEXT: set_local 5, pop{{$}}
-; CHECK-NEXT: ne push, (get_local 3), (get_local 3){{$}}
+; CHECK-NEXT: f64.ne push, (get_local 3), (get_local 3){{$}}
; CHECK-NEXT: set_local 6, pop{{$}}
-; CHECK-NEXT: or push, (get_local 6), (get_local 5){{$}}
+; CHECK-NEXT: i32.or push, (get_local 6), (get_local 5){{$}}
; CHECK-NEXT: set_local 7, pop{{$}}
-; CHECK-NEXT: or push, (get_local 4), (get_local 7){{$}}
+; CHECK-NEXT: i32.or push, (get_local 4), (get_local 7){{$}}
; CHECK-NEXT: set_local 8, pop{{$}}
; CHECK-NEXT: return (get_local 8){{$}}
define i32 @ueq_f64(double %x, double %y) {
}
; CHECK-LABEL: one_f64:
-; CHECK: ne push, (get_local 3), (get_local 2){{$}}
+; CHECK: f64.ne push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @one_f64(double %x, double %y) {
%a = fcmp one double %x, %y
}
; CHECK-LABEL: ult_f64:
-; CHECK: lt push, (get_local 3), (get_local 2){{$}}
+; CHECK: f64.lt push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @ult_f64(double %x, double %y) {
%a = fcmp ult double %x, %y
}
; CHECK-LABEL: ule_f64:
-; CHECK: le push, (get_local 3), (get_local 2){{$}}
+; CHECK: f64.le push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @ule_f64(double %x, double %y) {
%a = fcmp ule double %x, %y
}
; CHECK-LABEL: ugt_f64:
-; CHECK: gt push, (get_local 3), (get_local 2){{$}}
+; CHECK: f64.gt push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @ugt_f64(double %x, double %y) {
%a = fcmp ugt double %x, %y
}
; CHECK-LABEL: uge_f64:
-; CHECK: ge push, (get_local 3), (get_local 2){{$}}
+; CHECK: f64.ge push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @uge_f64(double %x, double %y) {
%a = fcmp uge double %x, %y
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i32.eq push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @eq_i32(i32 %x, i32 %y) {
}
; CHECK-LABEL: ne_i32:
-; CHECK: ne push, (get_local 3), (get_local 2){{$}}
+; CHECK: i32.ne push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @ne_i32(i32 %x, i32 %y) {
%a = icmp ne i32 %x, %y
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: eq push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i64.eq push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @eq_i64(i64 %x, i64 %y) {
}
; CHECK-LABEL: ne_i64:
-; CHECK: ne push, (get_local 3), (get_local 2){{$}}
+; CHECK: i64.ne push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define i32 @ne_i64(i64 %x, i64 %y) {
%a = icmp ne i64 %x, %y
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: add push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: f32.add push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define float @fadd32(float %x, float %y) {
}
; CHECK-LABEL: fsub32:
-; CHECK: sub push, (get_local 3), (get_local 2){{$}}
+; CHECK: f32.sub push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define float @fsub32(float %x, float %y) {
%a = fsub float %x, %y
}
; CHECK-LABEL: fmul32:
-; CHECK: mul push, (get_local 3), (get_local 2){{$}}
+; CHECK: f32.mul push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define float @fmul32(float %x, float %y) {
%a = fmul float %x, %y
}
; CHECK-LABEL: fdiv32:
-; CHECK: div push, (get_local 3), (get_local 2){{$}}
+; CHECK: f32.div push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define float @fdiv32(float %x, float %y) {
%a = fdiv float %x, %y
}
; CHECK-LABEL: fabs32:
-; CHECK: abs push, (get_local 1){{$}}
+; CHECK: f32.abs push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define float @fabs32(float %x) {
%a = call float @llvm.fabs.f32(float %x)
}
; CHECK-LABEL: fneg32:
-; CHECK: neg push, (get_local 1){{$}}
+; CHECK: f32.neg push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define float @fneg32(float %x) {
%a = fsub float -0., %x
}
; CHECK-LABEL: copysign32:
-; CHECK: copysign push, (get_local 3), (get_local 2){{$}}
+; CHECK: f32.copysign push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define float @copysign32(float %x, float %y) {
%a = call float @llvm.copysign.f32(float %x, float %y)
}
; CHECK-LABEL: sqrt32:
-; CHECK: sqrt push, (get_local 1){{$}}
+; CHECK: f32.sqrt push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define float @sqrt32(float %x) {
%a = call float @llvm.sqrt.f32(float %x)
}
; CHECK-LABEL: ceil32:
-; CHECK: ceil push, (get_local 1){{$}}
+; CHECK: f32.ceil push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define float @ceil32(float %x) {
%a = call float @llvm.ceil.f32(float %x)
}
; CHECK-LABEL: floor32:
-; CHECK: floor push, (get_local 1){{$}}
+; CHECK: f32.floor push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define float @floor32(float %x) {
%a = call float @llvm.floor.f32(float %x)
}
; CHECK-LABEL: trunc32:
-; CHECK: trunc push, (get_local 1){{$}}
+; CHECK: f32.trunc push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define float @trunc32(float %x) {
%a = call float @llvm.trunc.f32(float %x)
}
; CHECK-LABEL: nearest32:
-; CHECK: nearest push, (get_local 1){{$}}
+; CHECK: f32.nearest push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define float @nearest32(float %x) {
%a = call float @llvm.nearbyint.f32(float %x)
}
; CHECK-LABEL: nearest32_via_rint:
-; CHECK: nearest push, (get_local 1){{$}}
+; CHECK: f32.nearest push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define float @nearest32_via_rint(float %x) {
%a = call float @llvm.rint.f32(float %x)
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: add push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: f64.add push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define double @fadd64(double %x, double %y) {
}
; CHECK-LABEL: fsub64:
-; CHECK: sub push, (get_local 3), (get_local 2){{$}}
+; CHECK: f64.sub push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define double @fsub64(double %x, double %y) {
%a = fsub double %x, %y
}
; CHECK-LABEL: fmul64:
-; CHECK: mul push, (get_local 3), (get_local 2){{$}}
+; CHECK: f64.mul push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define double @fmul64(double %x, double %y) {
%a = fmul double %x, %y
}
; CHECK-LABEL: fdiv64:
-; CHECK: div push, (get_local 3), (get_local 2){{$}}
+; CHECK: f64.div push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define double @fdiv64(double %x, double %y) {
%a = fdiv double %x, %y
}
; CHECK-LABEL: fabs64:
-; CHECK: abs push, (get_local 1){{$}}
+; CHECK: f64.abs push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define double @fabs64(double %x) {
%a = call double @llvm.fabs.f64(double %x)
}
; CHECK-LABEL: fneg64:
-; CHECK: neg push, (get_local 1){{$}}
+; CHECK: f64.neg push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define double @fneg64(double %x) {
%a = fsub double -0., %x
}
; CHECK-LABEL: copysign64:
-; CHECK: copysign push, (get_local 3), (get_local 2){{$}}
+; CHECK: f64.copysign push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
define double @copysign64(double %x, double %y) {
%a = call double @llvm.copysign.f64(double %x, double %y)
}
; CHECK-LABEL: sqrt64:
-; CHECK: sqrt push, (get_local 1){{$}}
+; CHECK: f64.sqrt push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define double @sqrt64(double %x) {
%a = call double @llvm.sqrt.f64(double %x)
}
; CHECK-LABEL: ceil64:
-; CHECK: ceil push, (get_local 1){{$}}
+; CHECK: f64.ceil push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define double @ceil64(double %x) {
%a = call double @llvm.ceil.f64(double %x)
}
; CHECK-LABEL: floor64:
-; CHECK: floor push, (get_local 1){{$}}
+; CHECK: f64.floor push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define double @floor64(double %x) {
%a = call double @llvm.floor.f64(double %x)
}
; CHECK-LABEL: trunc64:
-; CHECK: trunc push, (get_local 1){{$}}
+; CHECK: f64.trunc push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define double @trunc64(double %x) {
%a = call double @llvm.trunc.f64(double %x)
}
; CHECK-LABEL: nearest64:
-; CHECK: nearest push, (get_local 1){{$}}
+; CHECK: f64.nearest push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define double @nearest64(double %x) {
%a = call double @llvm.nearbyint.f64(double %x)
}
; CHECK-LABEL: nearest64_via_rint:
-; CHECK: nearest push, (get_local 1){{$}}
+; CHECK: f64.nearest push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
define double @nearest64_via_rint(double %x) {
%a = call double @llvm.rint.f64(double %x)
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: add push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i32.add push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @add32(i32 %x, i32 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: sub push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i32.sub push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @sub32(i32 %x, i32 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: mul push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i32.mul push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @mul32(i32 %x, i32 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: div_s push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i32.div_s push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @sdiv32(i32 %x, i32 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: div_u push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i32.div_u push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @udiv32(i32 %x, i32 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: rem_s push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i32.rem_s push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @srem32(i32 %x, i32 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: rem_u push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i32.rem_u push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @urem32(i32 %x, i32 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: and push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i32.and push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @and32(i32 %x, i32 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: or push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i32.or push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @or32(i32 %x, i32 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: xor push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i32.xor push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @xor32(i32 %x, i32 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: shl push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i32.shl push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @shl32(i32 %x, i32 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: shr_u push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i32.shr_u push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @shr32(i32 %x, i32 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: shr_s push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i32.shr_s push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i32 @sar32(i32 %x, i32 %y) {
; CHECK-NEXT: .local i32, i32{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: clz push, (get_local 1){{$}}
+; CHECK-NEXT: i32.clz push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: return (get_local 2){{$}}
define i32 @clz32(i32 %x) {
; CHECK-NEXT: .local i32, i32{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: clz push, (get_local 1){{$}}
+; CHECK-NEXT: i32.clz push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: return (get_local 2){{$}}
define i32 @clz32_zero_undef(i32 %x) {
; CHECK-NEXT: .local i32, i32{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: ctz push, (get_local 1){{$}}
+; CHECK-NEXT: i32.ctz push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: return (get_local 2){{$}}
define i32 @ctz32(i32 %x) {
; CHECK-NEXT: .local i32, i32{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: ctz push, (get_local 1){{$}}
+; CHECK-NEXT: i32.ctz push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: return (get_local 2){{$}}
define i32 @ctz32_zero_undef(i32 %x) {
; CHECK-NEXT: .local i32, i32{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: popcnt push, (get_local 1){{$}}
+; CHECK-NEXT: i32.popcnt push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: return (get_local 2){{$}}
define i32 @popcnt32(i32 %x) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: add push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i64.add push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i64 @add64(i64 %x, i64 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: sub push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i64.sub push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i64 @sub64(i64 %x, i64 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: mul push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i64.mul push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i64 @mul64(i64 %x, i64 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: div_s push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i64.div_s push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i64 @sdiv64(i64 %x, i64 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: div_u push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i64.div_u push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i64 @udiv64(i64 %x, i64 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: rem_s push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i64.rem_s push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i64 @srem64(i64 %x, i64 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: rem_u push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i64.rem_u push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i64 @urem64(i64 %x, i64 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: and push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i64.and push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i64 @and64(i64 %x, i64 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: or push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i64.or push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i64 @or64(i64 %x, i64 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: xor push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i64.xor push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i64 @xor64(i64 %x, i64 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: shl push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i64.shl push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i64 @shl64(i64 %x, i64 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: shr_u push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i64.shr_u push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i64 @shr64(i64 %x, i64 %y) {
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 3, pop{{$}}
-; CHECK-NEXT: shr_s push, (get_local 3), (get_local 2){{$}}
+; CHECK-NEXT: i64.shr_s push, (get_local 3), (get_local 2){{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
; CHECK-NEXT: return (get_local 4){{$}}
define i64 @sar64(i64 %x, i64 %y) {
; CHECK-NEXT: .local i64, i64{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: clz push, (get_local 1){{$}}
+; CHECK-NEXT: i64.clz push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: return (get_local 2){{$}}
define i64 @clz64(i64 %x) {
; CHECK-NEXT: .local i64, i64{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: clz push, (get_local 1){{$}}
+; CHECK-NEXT: i64.clz push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: return (get_local 2){{$}}
define i64 @clz64_zero_undef(i64 %x) {
; CHECK-NEXT: .local i64, i64{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: ctz push, (get_local 1){{$}}
+; CHECK-NEXT: i64.ctz push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: return (get_local 2){{$}}
define i64 @ctz64(i64 %x) {
; CHECK-NEXT: .local i64, i64{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: ctz push, (get_local 1){{$}}
+; CHECK-NEXT: i64.ctz push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: return (get_local 2){{$}}
define i64 @ctz64_zero_undef(i64 %x) {
; CHECK-NEXT: .local i64, i64{{$}}
; CHECK-NEXT: get_local push, 0{{$}}
; CHECK-NEXT: set_local 1, pop{{$}}
-; CHECK-NEXT: popcnt push, (get_local 1){{$}}
+; CHECK-NEXT: i64.popcnt push, (get_local 1){{$}}
; CHECK-NEXT: set_local 2, pop{{$}}
; CHECK-NEXT: return (get_local 2){{$}}
define i64 @popcnt64(i64 %x) {
; CHECK-LABEL: store_i32_i1:
; CHECK: i32.const push, 1{{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: and push, (get_local 3), (get_local 4){{$}}
+; CHECK-NEXT: i32.and push, (get_local 3), (get_local 4){{$}}
; CHECK-NEXT: set_local 5, pop{{$}}
; CHECK-NEXT: i32.store8 (get_local 2), (get_local 5){{$}}
define void @store_i32_i1(i1* %p, i32 %v) {
; CHECK-LABEL: store_i64_i1:
; CHECK: i64.const push, 1{{$}}
; CHECK-NEXT: set_local 4, pop{{$}}
-; CHECK-NEXT: and push, (get_local 3), (get_local 4){{$}}
+; CHECK-NEXT: i64.and push, (get_local 3), (get_local 4){{$}}
; CHECK-NEXT: set_local 5, pop{{$}}
; CHECK-NEXT: i64.store8 (get_local 2), (get_local 5){{$}}
define void @store_i64_i1(i1* %p, i64 %v) {